使用Zend Db Table抽象类获取最新插入的ID

26

变量$tablemodel是一个继承了Zend_Db_Table_Abstract的模型实例,如果我执行

$tablemodel->insert($data)

如何插入数据并获取最后一个插入的id?

谢谢。

5个回答

33

尝试

$id = $tablemodel->insert($data);  
echo $id;

10
在我的Zend版本中,insert返回一个整数,但它表示受影响的行数而不是最后插入的行! - algorhythm
2
Zend 2 不会返回 ID,它会返回受影响的行数。 - JordyvD

32
$last_id = $tablemodel->getAdapter()->lastInsertId();

15

你可以使用lastInsertId方法

echo 'last inserted id: ' . $db->lastInsertId();

2
$db 是从哪里来的? - JordyvD

2

使用插入查询后

$this->dbAdapter->getDriver()->getLastGeneratedValue();

这个终于可以工作了。我使用了一个自动递增的主键“id”。所以如果你有你的适配器,获取驱动程序它应该可以工作。另外Zend-Db v2.9。 - Bitterblue

1
"

$insert_id = $this->db->getLastId() worked for me

" 的意思是:"$insert_id = $this->db->getLastId()" 对我来说起作用了。其中的 HTML 标签被保留,不做解释。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接