Подтвердить что ты не робот

Zend Framework: как получить идентификатор последней вставленной строки?

Я вставляю новую строку в свою базу данных с помощью этого кода:

$data = array(
    'key' => 'value'
);
$this->getDbTable()->insert($data);

Как я могу получить идентификатор строки для этой строки, которую я только что создал?

4b9b3361

Ответ 1

Вы попробовали это? Это также отлично работает.

//just after you call your insert($data) function .. use this
$lastInsertId = $this->getAdapter()->lastInsertId();

Ответ 2

Один получил. При вызове $this->getDbTable()->insert($data); вам необходимо убедиться, что $data содержит "первичный ключ" вашей таблицы. Например, id=null, если он автоматически увеличивает. В противном случае insert() не вернет последний вставленный идентификатор.

Ответ 3

Попробуйте ввести код:

Вставить данные:

$this->tableGateway->insert($data);

Получить последнее введенное значение:

$this->tableGateway->lastInsertValue;

Ответ 4

Существует также функция newId, ведьма возвращает следующий новый идентификатор, поэтому вы можете использовать его для вставки новой строки.

$id = $this->getDbTable->newId('table_name', 'id');

$data = array(
    'id' => $id,
    'data' => $data
);

$this->getDbTable->insertRow('table_name', $data);

Теперь вы можете делать все, что хотите, с помощью $id.