Я использую codeigniter и вставляю одну запись за раз. Но проблема в том, что $ this-> db-> insert_id (); каждый раз возвращается 0, однако запись создается успешно. Я не могу понять это. Это обычный случай, или я делаю какую-то глупую ошибку. Я использовал email_id как первичный ключ, а мобильный не уникален.
Вот мой код модальности:
function signup_insert($data) { $result = $this->db->insert('registration_detail', $data); $insert_id = $this->db->insert_id(); return $insert_id; }
И это мой код контроллера:
function insert_signup() { $email = $this->input->get('email'); $name = $this->input->get('name'); $password1 = $this->input->get('password1'); $password2 = $this->input->get('password2'); $phone = $this->input->get('phone'); $country = $this->input->get('country'); $data = array( 'email' => $email, 'name' => $name, 'pwd' => $password1, 'phone' => $phone, 'country' => $country ); $insert_id = $this->signup->signup_insert($data); print_r($insert_id); }
Следовательно, $this->db->insert_id()
Идентификационный номер вставки при вставке базы данных.
И в вашей базе нет идентификатора с автоматическим добавлением
Для проверки данных вставлять или не использовать
$this->db->affected_rows()
Отображает количество затронутых строк при выполнении запросов типа «запись» (вставка, обновление и т. Д.).
модели
function signup_insert($data) { $result = $this->db->insert('registration_detail', $data); $rows = $this->db->affected_rows(); if($rows>0){ return $rows; }else{ return FALSE; } }
Читайте http://www.codeigniter.com/user_guide/database/helpers.html
Чтобы вернуть идентификатор, должен быть столбец AUTO_INCREMENT. Если нет, он не может вернуть insert_id, см. Здесь документацию mysql.
https://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html