$ this-> db-> insert_id () не работает в mysql codeigniter - PullRequest
5 голосов
/ 04 августа 2011

Я просто пытаюсь получить последний автоматически сгенерированный ключ из таблицы mysql из codeiginitor.Но это не работает как-то.Я пробовал этот код
$this->db->insert_id()
, а также
$this->db->mysql_insert_id()
Я получаю следующую ошибку
Severity: Notice <br> Message: Undefined property: CI_DB_mysql_driver::$insert_id
не поддерживается ли функция insert_id для mysql?Как мы можем заставить это работать?

Ответы [ 11 ]

11 голосов
/ 04 августа 2011

CodeIgniter insert_id() будет возвращать только идентификатор insert().Пока вы не выполните что-то вроде $this->db->insert('table', $data); перед вызовом функции, она не сможет вернуть идентификатор.

6 голосов
/ 05 марта 2014

Использовать только этот синтаксис

$last_id = $this->db->insert_id();

return $last_id; 
5 голосов
/ 08 августа 2011

Это код, который я пытался вставить данные и получить идентификатор вставки,

$this->db->insert('table_name',$data); $id = $this->db->mysql_insert_id();

Это не работает для меня. Я использовал драйвер БД в качестве «MySQL». Затем я установил «mysqli» и изменил имя драйвера БД в database.php как,
$db['default']['dbdriver'] = 'mysqli';
Теперь он работает нормально для меня.

2 голосов
/ 07 ноября 2016

Пожалуйста, проверьте, если ваша таблица не имеет автоматического приращения, главное поле, то $this->db->insert_id(); ничего не вернет.

1 голос
/ 28 октября 2014

У меня была такая же проблема, и я нашел решение по этой ссылке: http://kedyr.wordpress.com/2012/10/03/codeigniter-insert_id/

Решение не является правильным решением, потому что это всего лишь способ обойти, используя собственный SQL, сметод codeigniter "Query" и работа с нативным обратным вызовом sql.

    $this->db->insert('references', $data);
    $query = $this->db->query('SELECT LAST_INSERT_ID()');
    $row = $query->row_array();
    $LastIdInserted = $row['LAST_INSERT_ID()'];
1 голос
/ 20 марта 2013

при условии, что вы используете шаблон активной записи это должно работать
$this->db->insert_id()

0 голосов
/ 19 мая 2018
// Store data into array
$data=array('name'=>'Rudra','email'=>'test@gmail.com');

//Insert Data Query
$this->db->insert('tableName',$data);

// Storing id into varialbe
$id = $this->db->insert_id();
return $id;
0 голосов
/ 19 мая 2018

Если вы используете ajax для вставки данных, то распечатайте вывод, в ответ вы получите идентификатор, или, если вы используете основной метод codeigniter, используйте код ниже.

$last_id = $this->db->insert_id();
return $last_id; 
0 голосов
/ 28 января 2018

Ваш код будет работать, если у вас есть такой код:

var $table = 'your table name'
$this->db->insert($this->table,$data1);
        return $this->db->insert_id();

CodeIgniter's insert_id () будет возвращать только идентификатор вставки (), как упоминалось ранее, а также вы не забываете настраивать имя драйвера БД в database.php, например

$db['default']['dbdriver'] = 'mysqli';

0 голосов
/ 07 ноября 2016

Попробуйте это

$this->db->insert('table_name',$data);
$id = $this->db->mysql_insert_id();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...