gpt4 book ai didi

php - mysql_insert_id() 在 PHP 更新后停止工作

转载 作者:可可西里 更新时间:2023-11-01 08:55:43 26 4
gpt4 key购买 nike

我正准备将实时网络服务器从 PHP 5.2.12 更新到 5.3.5。在准备过程中,我在第二台服务器上执行了更新,该服务器是实时服务器(“开发”服务器)的镜像。两台服务器都使用 FreeBSD,并且都使用端口来安装 PHP 和 MySQL。实时服务器使用MySQL 5.0.89,新升级的开发服务器使用5.1.54。

以下代码在实时服务器 (PHP 5.2.12/5.0.89) 上按预期执行,返回刚刚插入的 AUTO_INCREMENT 行的值。此函数是整个站点使用的数据库类的一部分,其中“$this->_private['cn']”是资源链接。

 public function insert ($sql=false) {
@mysql_select_db($this->_private['db_name'], $this->_private['cn']);
$res = null;
if (false !== $sql) {
$query_obj = mysql_query($sql, $this->_private['cn']);
if ($query_obj)
$res = mysql_insert_id($this->_private['cn']);
}
return $res;
}

在开发服务器 (5.3.5/5.1.54) 上,返回值为零。注意 - 不是 null(如果查询失败则返回),而是零。我可以查看表格并验证是否确实插入了新行,并且自动递增字段已正确推进。该字段值当前为 121288,因此完全在 PHP 的整数范围内。我什至在一个简单的页面上重新创建了类的代码并得到了相同的结果。 mysql_error() 表示没有失败。错误报告设置为 E_ALL,一点也看不到。

哎呀!有什么想法吗?

最佳答案

看这个bug建议使用 SELECT LAST_INSERT_ID()

进行查询

关于php - mysql_insert_id() 在 PHP 更新后停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4951669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com