Как сделать автоматически сгенерированный код для номера участника. Я использую Codeigniter Framework. но он показывает некоторую ошибку и все данные об успешном вводе в базу данных, кроме «номера участника», который выделен в ошибке, изображенной ниже
Это мои коды:
//Model
public function customer_insert($table, $data)
{
$query = $this->db->insert($table, $data);
return $query;
}
public function customer_getByLastId()
{
$query = $this->db->query("SELECT customer_id FROM customer where customer_id=last_insert_id()");
return $query;
}
public function customer_update($id, $table, $data)
{
$query = $this->db->where('customer_id', $id);
$query = $this->db->update($table, $data);
return $query;
}
//Controller
public function add()
{
$name = strip_tags($this->input->post('i_name'));
$ktp = strip_tags($this->input->post('i_ktp'));
$email = strip_tags($this->input->post('i_email'));
$gender = strip_tags($this->input->post('i_gender'));
$phone = strip_tags($this->input->post('i_phone'));
$address = strip_tags($this->input->post('i_address'));
// Input Array
$data = array(
'name' => $name,
'ktp' => $ktp,
'email' => $email,
'gender' => $gender,
'phone' => $phone,
'address' => $address
);
// Insert ke Database
$x = $this->customer_model->customer_cek($ktp);
if ($x == Null) {
$this->customer_model->customer_insert('customer', $data);
$id = $this->customer_model->customer_getByLastId();
$char = "MEM";
$no_member = $char . sprintf("%09s", $id);
$data = array(
'no_member' => $no_member
);
$this->customer_model->customer_update($id, 'customer', $data);
echo '<script language=JavaScript>alert("Input Berhasil")
onclick=history.go(-0);</script>';
} else {
echo '<script language=JavaScript>alert("Gagal!! customer telah tersimpan sebelumnya karena Nama atau dan No. Hp sama!")
onclick=history.go(-1);</script>';
}
}
Ошибка, подобная следующей:
A PHP Произошла ошибка Серьезность: 4096
Сообщение : Объект класса CI_DB_mysqli_result не может быть преобразован в строку
Имя файла: admin / Customer. php
Номер строки: 46
Backtrace:
Файл: C: \ xampp \ htdocs \ tokobuku \ application \ controllers \ admin \ Customer. php Строка: 46 Функция: sprintf
Файл: C: \ xampp \ htdocs \ tokobuku \ index . php Строка: 315 Функция: require_once
A PHP Ошибка обнаружена Серьезность: 4096
Сообщение: объект класса CI_DB_mysqli_result не может быть преобразован в строку
Имя файла: database / DB_query_builder. php
Номер строки: 2442
Backtrace:
Файл: C: \ xampp \ htdocs \ tokobuku \ application \ models \ Customer_model. php Строка: 32 Функция: обновление
Файл: C: \ xampp \ htdocs \ tokobuku \ application \ controllers \ admin \ Customer. * 10 63 * Строка: 51 Функция: customer_update
Файл: C: \ xampp \ htdocs \ tokobuku \ index. php Строка: 315 Функция: require_once
Ошибка базы данных произошла номер ошибки : 1064
В синтаксисе SQL произошла ошибка; проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с '' в строке 2
ОБНОВЛЕНИЕ customer
SET no_member
= 'MEM000000000' ГДЕ customer_id
Имя файла: C: / xampp / htdocs / tokobuku / system / database / DB_driver. php
Номер строки: 691