Zend数据库插入行的最后一个ID.(使用postgres)

chr*_*ris 1 php postgresql zend-framework

好的,得到了​​这个查询(工作正常,插入一个...)

$db = Zend_Db_Table::getDefaultAdapter();
$data = array(
    "comment_id" => new Zend_Db_Expr("nextval('comments_comment_id_seq')"),
    "comment" => $comment,
    "comment_level" => 1,
    "is_active" => true,
    "status" => 0,
    "id" => $id,
    "user_id" => $_SESSION['role']['user_id'],
    "ts_create" => $created,
    "ts_mod" => $created
);
$db->insert($this->_name, $data);
$newID = $db->lastInsertId();
Run Code Online (Sandbox Code Playgroud)

我甚至尝试过

$newID = $db->insert($this->_name, $data);
Run Code Online (Sandbox Code Playgroud)

我无法获得ID的价值.它不是mysql(i)所以我认为那是我的第一个问题,因为postgres似乎没有像我习惯使用它的方式一样自动注释.所以我希望有人可以帮助我.无论如何要在新插入的项目上获取"comment_id"列id?因为现在我尝试使用lastInsertID,我得到的只是假或1,在任何一种情况下都是错误的.

chr*_*ris 5

好吧,GordonM向我指出了zend的特定文档的方向,通过阅读,我能够找到我需要的东西.不幸的是,没有人提供真正的答案.因此,我将回答我自己的问题,因为当他们陷入与我刚才相似的位置时,可能偶然发现它们.但是会向GordonM投票,让我朝着正确的方向前进.谢谢GordonM

更改:

$newID = $db->insert($this->_name, $data);
Run Code Online (Sandbox Code Playgroud)

至:

$newID = $db->lastSequenceId('comments_comment_id_seq');
Run Code Online (Sandbox Code Playgroud)