MySQL:LAST_INSERT_ID()返回0

dwe*_*lle 16 mysql sql database

我有这个测试表:

CREATE TABLE IF NOT EXISTS `test` (
    `id` INT(10) AUTO_INCREMENT,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4;
Run Code Online (Sandbox Code Playgroud)

使用这三个中的任何一个插入

INSERT INTO `test` (`id`) VALUES (NULL);
INSERT INTO `test` (`id`) VALUES (0);
INSERT INTO `test` () VALUES ();
Run Code Online (Sandbox Code Playgroud)

发行

SELECT LAST_INSERT_ID();
Run Code Online (Sandbox Code Playgroud)

但查询总是会导致0.

PHP mysql_insert_idPDO::lastInsertId()收益也没有结果.

我整整一天都在玩弄它无法让它发挥作用.想法?

dwe*_*lle 18

问题似乎出现在MySQL的phpmyadmin配置文件PersistentConnections集中,每次发出查询时都会FALSE产生新的CONNECTION_ID- 因此呈现SELECT LAST_INSERT_ID()无效.

后续主题中的更多信息每个查询都会创建一个新的CONNECTION_ID()

还要感谢dnagirl的帮助


Ted*_*Ted 14

对于这个问题,我只花了50美分,我只是注意到,如果你的表没有设置索引,你就不会得到LAST_INSERT_ID更多.0AUTO_INCREMENT

我浪费了大约半个小时.原来我总是收到LAST_INSERT_ID()0,这对于这个表实际上是OK.


use*_*282 11

你必须结合起来

INSERT INTO test (title) VALUES ('test');SELECT LAST_INSERT_ID();
Run Code Online (Sandbox Code Playgroud)

然后,您将获得最后一个插入ID