问题概述:
使用常用方法向 MySQL 表插入数据(如插入NULL、0或空括号)并随后查询对于最后插入的 ID (LAST_INSERT_ID()) 始终返回 0。此问题同时影响 PHP 的 mysql_insert_id 和 PDO::lastInsertId()。
解决方案:
问题出在 MySQL phpmyadmin 配置文件中。当 PersistentConnections 设置为 FALSE 时,将为每个查询建立一个新的 CONNECTION_ID。这会使 LAST_INSERT_ID() 结果无效,因为它与先前的连接相关联。
要解决此问题,请在 phpmyadmin 配置文件中将 PersistentConnections 设置为 TRUE。这可确保在多个查询中保持相同的连接,从而允许 LAST_INSERT_ID() 准确返回最后插入的 ID。
其他信息:
有关PersistentConnections 的影响,请参阅主题“每个查询都会创建一个新的CONNECTION_ID()"。
致谢:
特别感谢 dnagirl 在识别此问题时提供的宝贵帮助。
以上是为什么 MySQL 中 `LAST_INSERT_ID()` 返回 0?的详细内容。更多信息请关注PHP中文网其他相关文章!