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中文网其他相关文章!