我正在尝试实现一个可以在插入记录之前获取最后一个插入ID的操作。
该动作基本上应该是获取最后插入的id,然后我向它添加1然后该值将用于当前插入的数据。
我已经走了多远,而且错误正在变得
//the action to get the last inserted id
public function getLastID(){
$lastcourseid = $this->tableGateway->select(function (Select $select){
$select->columns(array('id'));
$select->order('id ASC')->limit(1);
});
var_dump($lastcourseid);
return $lastcourseid;
}
我在保存之前调用此函数
if($id == 0){
$data['course_code'] = $this->getLastID();
$this->tableGateway->insert($data);
}else{
if($this->getAlbum($id)){
$this->tableGateway->update($data, array('id' => $id));
}else{
throw new \Exception("Form id does not exist");//an error is thrown in case the id is not found
}
}
这是我得到的错误
捕获致命错误:类Zend \ Db \ ResultSet \ ResultSet的对象 无法转换为字符串 我不知道哪里出错了。
任何帮助将不胜感激。感谢
答案 0 :(得分:4)
没有像“插入前的最后一个ID”这样的东西 你不需要它。
首先插入一条记录,然后获取您的ID。这是它的工作原理。
答案 1 :(得分:0)
您没有提到底层数据库(postgressql,mysql等)。我对MySQL比较熟悉。 Perl和php AIP具有“最后一行ID”功能。例如,php有“mysqli_insert_id()”。这假设您的rowID是AUTO_INCREMENT列。其他DB可能有不同的要求。