我使用 Doctrine/DBAL 很长时间了,但是在使用executeUpdate 和获取最后一个插入ID 时遇到了一些问题。 它始终返回 0 ,但 DB 条目已设置。列 id 已设置,并且在我的数据库中是 AutoIncrement 和 PRIMARY。
这是将我的条目复制到另一个表的函数。
$copy = $app['db']->executeUpdate('INSERT INTO `pd_user_model` (
`campaign_id`,
...
`created`)
SELECT `campaign_id`,
...
NOW()
FROM `pd_pass_model` WHERE `campaign_id` = ?', array($campaignID));
echo "INSERT<br>";
echo "LAST INSERT:" . $app['db']->lastInsertId();
//RETURN VALUE
INSERT
LAST INSERT:0
任何人都可以给我任何提示。 到目前为止谢谢!
最佳答案
lastInsertId 返回最后生成的 ID。在您的用例中,您不会生成 id。您已经为查询提供了 ID,因此,lastInsertId 函数将返回 0,因为它没有生成 ID。
LAST_INSERT_ID() (with no argument) returns a BIGINT (64-bit) value representing the first automatically generated value that was set for an AUTO_INCREMENT column by the most recently executed INSERT statement to affect such a column.
关于php - Doctrine/DBAL lastInsertId() 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17931517/