首页 > 数据库 > mysql教程 > 为什么 MySQL 的 LAST_INSERT_ID() 返回 0,如何修复?

为什么 MySQL 的 LAST_INSERT_ID() 返回 0,如何修复?

DDD
发布: 2024-12-22 11:25:10
原创
880 人浏览过

Why Does MySQL's LAST_INSERT_ID() Return 0, and How Can I Fix It?

MySQL:排除 LAST_INSERT_ID() 返回 0

在 MySQL 中,LAST_INSERT_ID() 函数返回为最后插入的行生成的 ID AUTO_INCRMENT 列。但是,您遇到了一个问题,尽管向表中插入了新记录,但它始终返回 0。

经调查,问题似乎源于您的 MySQL 配置。您提到 PHP 函数 mysql_insert_id 和 PDO::lastInsertId() 也不会产生任何结果。这表明问题并非特定于 LAST_INSERT_ID() 函数,而是在于 MySQL 连接本身。

此问题的解决方案是在 MySQL 配置文件中将 PersistentConnections 参数设置为 TRUE。这可确保您的 PHP 脚本在其操作期间保持与数据库的相同连接。当 PercientConnections 设置为 FALSE 时,将为每个查询创建一个新连接,这会导致 CONNECTION_ID 发生更改。结果,LAST_INSERT_ID() 变得无效,因为它无法跟踪上次插入操作的连接。

将 PersistentConnections 设置为 TRUE 可以解决此问题,允许您的脚本重用相同的连接,从而正确返回 AUTO_INCRMENT ID最后插入的记录。此外,您可以参阅有关每个查询都会创建一个新 CONNECTION_ID() 的文档以获取更多信息。感谢 dnagirl 帮助解决了这个问题。

以上是为什么 MySQL 的 LAST_INSERT_ID() 返回 0,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板