我插入新行到我的数据库使用此代码:Zend Framework:如何检索最后插入的行的ID?
$data = array(
'key' => 'value'
);
$this->getDbTable()->insert($data);
我怎样才能像我刚刚创建的这一行的行号?
我插入新行到我的数据库使用此代码:Zend Framework:如何检索最后插入的行的ID?
$data = array(
'key' => 'value'
);
$this->getDbTable()->insert($data);
我怎样才能像我刚刚创建的这一行的行号?
一个问题。当调用$this->getDbTable()->insert($data);
时,您必须确保$ data包含表的“主键”。例如,如果它是自动增量,则为id=null
。否则,insert()
将不会返回上次插入的ID。
你试过这个吗?这也很好。
//just after you call your insert($data) function .. use this
$lastInsertId = $this->getAdapter()->lastInsertId();
支票投票人thanx – 2012-04-04 10:12:54
试试下面的代码:
要插入数据:
$this->tableGateway->insert($data);
获取上次插入值:
$this->tableGateway->lastInsertValue;
如果另一个用户在之后插入记录,lastInsertValue将获得最后插入的id,或者用于某些事务。 - ? – Katia 2014-05-23 18:28:09
还有newId
功能,女巫返回下一个新的ID ,所以你可以用它来插入一个新的行。现在
$id = $this->getDbTable->newId('table_name', 'id');
$data = array(
'id' => $id,
'data' => $data
);
$this->getDbTable->insertRow('table_name', $data);
你可以做任何你想要与你的$id
。
谢谢聪 - 这救了我 - – Andre 2012-03-19 13:13:48
有一点需要注意的是,这已经在v1.11.6标记为已修复。请参见http://framework.zend.com/issues/browse/ZF-3837 – 2012-08-05 18:12:38