我正在使用以下代码在我的数据库中插入一个新行:
$data = array(
'key' => 'value'
);
$this->getDbTable()->insert($data);
如何获取刚刚创建的此行的行ID?
答案 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
执行任何操作。