我正在使用以下代码将新行插入数据库:
$data = array(
'key' => 'value'
);
$this->getDbTable()->insert($data);
如何获取刚创建的行的行ID?
我正在使用以下代码将新行插入数据库:
$data = array(
'key' => 'value'
);
$this->getDbTable()->insert($data);
如何获取刚创建的行的行ID?
你尝试过这个吗?这也很好用。
//just after you call your insert($data) function .. use this
$lastInsertId = $this->getAdapter()->lastInsertId();
一个需要注意的地方是,在调用 $this->getDbTable()->insert($data);
方法时,你需要确保 $data 中包含了你的表的“主键”。比如,如果主键是自增的,那么就需要设置 id=null
。否则,insert()
方法将无法返回最后插入的 ID。
尝试以下代码:
插入数据:
$this->tableGateway->insert($data);
获取最后插入的值:
$this->tableGateway->lastInsertValue;
还有一个newId
函数,它返回下一个新的ID,因此您可以使用它来插入新行。
$id = $this->getDbTable->newId('table_name', 'id');
$data = array(
'id' => $id,
'data' => $data
);
$this->getDbTable->insertRow('table_name', $data);
现在你可以随心所欲地使用你的$id
了。