$ this-> db-> insert_id (); возвращая 0 каждый раз в codeigniter

Я использую 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