Я вставляю новую строку в свою базу данных с помощью этого кода:
$data = array(
'key' => 'value'
);
$this->getDbTable()->insert($data);
Как я могу получить идентификатор строки этой строки, которую я только что создал?
Я вставляю новую строку в свою базу данных с помощью этого кода:
$data = array(
'key' => 'value'
);
$this->getDbTable()->insert($data);
Как я могу получить идентификатор строки этой строки, которую я только что создал?
Вы пробовали это? Это также отлично работает.
//just after you call your insert($data) function .. use this
$lastInsertId = $this->getAdapter()->lastInsertId();
Одна ошибка. При вызове $this->getDbTable()->insert($data);
вы должны убедиться, что $data включает "первичный ключ" вашей таблицы. Например, id=null
, если это автоинкремент. В противном случае insert()
не вернет последний вставленный идентификатор.
Попробуйте код ниже:
Чтобы вставить данные:
$this->tableGateway->insert($data);
Получить последнее вставленное значение:
$this->tableGateway->lastInsertValue;
Существует также функция newId
, которая возвращает следующий новый идентификатор, поэтому вы можете использовать ее для вставки новой строки.
$id = $this->getDbTable->newId('table_name', 'id');
$data = array(
'id' => $id,
'data' => $data
);
$this->getDbTable->insertRow('table_name', $data);
Теперь вы можете делать со своим $id
все, что хотите.