所以我尝试使用Zend_Db_Adapter_Pdo_Mysql的insert()方法。
然后,我发出了SELECT LAST_INSERT_ID();
命令。
但是由于某种原因,该命令总是返回0而不是实际插入的ID ...
当我尝试使用普通的INSERT查询,然后获取最后一个插入ID时,它的工作正常,所以我想这是zend框架搞砸了...
有谁知道如何解决这个问题?
insert()方法仅在成功时返回1,而不是返回ID,因此解决方案:last insert id with zend db table abstract似乎不起作用
最佳答案
Zend_Db_Adaptor文档说明
一些RDBMS品牌支持自动增量主键。以这种方式定义的表在插入新行期间会自动生成一个主键值。 insert()方法的返回值不是最后插入的ID,因为表可能没有自动递增的列。相反,返回值是受影响的行数(通常为1)。
如果您的表格是用
自动递增主键,您可以
之后调用lastInsertId()方法
插入。此方法返回
在范围内生成的最后一个值
当前的数据库连接。
所以...
$id = $db->lastInsertId();
应该管用
关于mysql - zend framework insert()和LAST_INSERT_ID()搞砸了,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6096147/