我正在维护一个运行时间大约为1年的服务器。以前没有人会错。但是,突然间,mysql_insert_id()中有一个错误,它返回0,而不是数据库中的普通行ID。这是代码的核心。mysql_insert_id()很少返回0
$sql = "INSERT INTO $db_table (name,email) VALUES('$name','$email')";
mysql_query($sql);
$current = mysql_insert_id();
还要注意,即使是在代码中没有变化,程序顺利再次运行错误发生之后。我觉得很奇怪。
这是我的可能解释。因为我在一个公共服务器上托管,其中很多使用相同的MYSQL服务器。那么当mysql_query($sql)
时,服务器会交换进程并让另一个人运行另一个SQL命令(可能是例如SELECT
语句),并且在它们执行后,它会交换回我自己的代码并继续执行,结果为0?
请帮忙。谢谢。
黄油方式,使用参数和基于交易的查询使用PDO摆脱做这种情况。 –
这是php的问题,请标记为php –
我的老板告诉我不要改变尽可能多的东西,只是解决这里的问题。由于有成千上万的页面具有这种设置。只有一页暂时死亡像这样。 – CHANist