mysql_insert_id()返回';0';
我有一个运行正常的查询,它将一行插入到一个主键自动递增的表中。但是mysql_insert_id()总是显示为“0”mysql_insert_id()返回';0';,mysql,insert,auto-increment,Mysql,Insert,Auto Increment,我有一个运行正常的查询,它将一行插入到一个主键自动递增的表中。但是mysql_insert_id()总是显示为“0” $this->event->insertEvent($event); $lastid = mysql_insert_id(); 我已经在站点的另一个区域使用了相同的命令,它工作得非常好。 这背后的原因是什么?摘自PHP页面,如果无法解决问题,您可以做些什么来排除另一件事情: 如果mysql\u insert\u id()返回0或null,请检查您是否也有 包括链接标
$this->event->insertEvent($event);
$lastid = mysql_insert_id();
我已经在站点的另一个区域使用了相同的命令,它工作得非常好。
这背后的原因是什么?摘自PHP页面,如果无法解决问题,您可以做些什么来排除另一件事情: 如果mysql\u insert\u id()返回0或null,请检查您是否也有 包括链接标识符。这是可选的,但如果您有超过 一个数据库连接,那么这是必要的 例如:mysql\u insert\u id($conn)
文档显示
上一次查询成功时为自动增量列生成的ID,如果上一次查询未生成自动增量值,则为0,如果未建立MySQL连接,则为FALSE。
是否在该函数中运行另一个查询,该查询将覆盖上一个insert id结果?能否显示运行insert的方法?这可能是相关的。从设计的角度来看,它会更清楚,因此您的insertEvent()
为您返回了id。我正在使用其他人的基本代码。我可以确认insertEvent正在填充数据库,以及用最新的数字填充auto increase字段。当我插入更多的字段时,自动递增的幅度也在增加。此外,这个项目中只有一个数据库。我现在能够让insertEvent()正确返回值。感谢Zerkms指出这一点。当只有一个数据库时有必要吗?您可以有多个连接到一个数据库。没有参数的mysql\u insert\u id()将是使用最后一个连接,但insert查询可能从另一个连接执行,因此mysql\u insert\u id()将返回0