首页 >数据库 >mysql教程 >为什么 MySQL 中 `LAST_INSERT_ID()` 返回 0?

为什么 MySQL 中 `LAST_INSERT_ID()` 返回 0?

Susan Sarandon
Susan Sarandon原创
2025-01-02 12:49:40815浏览

Why Does `LAST_INSERT_ID()` Return 0 in MySQL?

LAST_INSERT_ID() 在 MySQL 中始终返回 0

问题概述:

使用常用方法向 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn