Zend Framework:如何检索最后插入行的id?

时间:2009-12-08 18:04:27

标签: php zend-framework zend-db zend-db-table

我正在使用以下代码在我的数据库中插入一个新行:

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

如何获取刚刚创建的此行的行ID?

4 个答案:

答案 0 :(得分:15)

你尝试过这个吗?这也很好。

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

答案 1 :(得分:10)

一个问题。致电$this->getDbTable()->insert($data);时,您必须确保$ data包含表格的“主键”。例如,id=null如果它是自动递增的话。否则,insert()将不会返回最后插入的ID。

答案 2 :(得分:0)

尝试以下代码:

要插入数据:

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

获取上次插入的值:

$this->tableGateway->lastInsertValue;

答案 3 :(得分:0)

还有newId函数,返回下一个新ID,因此您可以使用它来插入新行。

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

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

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

现在,您可以使用$id执行任何操作。