ZF最后一次插入id让我回到'0'

时间:2011-09-18 10:31:17

标签: mysql database model-view-controller zend-framework

当我尝试使用函数' - > lastInsertId()'来检索表的lat ID时,我得到'0'。 我找不到解决方案。我的桌子是自动增量

我尝试使用此代码在控制器中获取它。

$reviews = new Application_Model_DbTable_Reviews();
$lastId  = $reviews->getAdapter()->lastInsertId();
echo $lastId;

我希望有人可以帮助我。

亲切的问候,

尼克

1 个答案:

答案 0 :(得分:1)

这个东西在文档中没有提到,但它适用于例如 如果您的表名为'Book',PK book_id,FK user_id和'User'表,PK user_id

<<Book>>
*book_id
title
user_id

<<User>>
*user_id
name
age

然后

$userTb = new Model_DbTable_User();
$user = $userTb->createRow();
$user->name = "jason";
$user->age = 25;
$user->save();

//保存记录后,ZF为您填充PK,所以现在您只需通过$ userTb-&gt; user_id读取自动递增PK的访问权限;

所以

$bookTb = new Model_DbTable_Book();
$book = $bookTb->createRow();
$book->title = 'php';
$book->user_id = $user->user_id;
$bookId = $book->save(); // this is another way of accessing auto generated PK at insert tim .