使用Zend\Db\Adapter\Driver\ResultInterface#getGeneratedValue()
Zend\Db
提供了获取上一个INSERT
ed条目ID的简单方法,例如:
$action = new Insert('my_table');
$action->values($data);
$sql = new Sql($this->dbAdapter);
$statement = $sql->prepareStatementForSqlObject($action);
$result = $statement->execute();
$newId = $result->getGeneratedValue();
但是,如果PRIMARY KEY
列调用“id”,它似乎只能起作用。如何检索另一列上定义的generatedValue
的{{1}}?
答案 0 :(得分:1)
最好使用提供getLastInsertValue()
方法的Zend\Db\TableGateway\TableGateway
。
use Zend\Db\TableGateway\TableGateway;
$myTable = new TableGateway('my_table', $this->dbAdapter);
$action = new Insert('my_table');
$action->values($data);
$myTable->insertWith($action);
$newId = $myTable->getLastInsertValue();
答案 1 :(得分:0)
$this->dbAdapter->getDriver()->getLastGeneratedValue();