php - Doctrine/DBAL lastInsertId() 返回 0

标签 php silex

我使用 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。

来自MYSQL doc

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/

相关文章:

php - xampp php文件上传错误

php - 羊群:-c 只需要一个命令参数

php - Silex + Doctrine ORM 在@MappedSuperclass 上设置时不会触发事件

url - 自定义错误页面中的 Silex 和 Twig 助手

php - 是否有 PHP 工具可以从数据库模式生成 CRUD 屏幕?

php - 年 View 日历

php - 在 Twig View 预渲染中设置变量

Symfony RememberMe token_provider

php - DI对象方法

php - Laravel 5.1 中的 mysql 外键错误