gpt4 book ai didi

php - mysql_affected_rows() 返回 -1

转载 作者:可可西里 更新时间:2023-11-01 06:46:17 26 4
gpt4 key购买 nike

执行SQL语句时,如 INSERT INTO table ... 在 DUPLICATE KEY UPDATE ...我依靠 mysql_affected_rows() 来确定是否执行了插入或更新。作为 http://dev.mysql.com/doc/refman/5.1/en/mysql-affected-rows.html 上的 mysql 站点,它指出:

For INSERT ... ON DUPLICATE KEY UPDATE statements, the affected-rows value is 1 if the row is inserted as a new row and 2 if an existing row is updated.

在我们升级到 MySQL 5.1.16 之前,一切正常,当时许多查询的 mysql_affected_rows() 返回减一 (-1)

MySQL 站点上建议的解决方案 http://dev.mysql.com/doc/refman/5.1/en/mysql-store-result.html是在每次对选择查询执行函数 mysql_query() 之后调用函数 mysql_store_result()。

但是PHP好像没有定义这样的函数。

如何使用 PHP 和 MySQL 5.1.16 让 mysql_affected_rows() 正常工作?

最佳答案

一般来说,如果 mysql_affected_rows() 返回 -1,则表示查询失败(请参阅 manual page 了解更多信息)。您可以通过调用 mysql_error() 来检查错误是什么,但是您应该在调用 mysql_query() 之前就已经发现错误了有多少行受到影响。

既然你问的是 store_result 函数,那么让我也回答你的那部分问题:

PHP 的 MySQL 模块可能没有 store_result 函数,但较新的 MySQLi 模块有。参见 http://php.net/manual/en/mysqli.store-result.php

通常建议从使用 mysql_xxx 函数切换到等效的 mysqli_xxx 函数,所以这将是您这样做的绝佳机会。

您不需要为此升级您的 PHP 版本,因为 MySQLi 模块是在 PHP 5.0 中引入的。不过,我还是建议考虑升级——如果您使用的是 PHP 5.1,那么您使用的版本已经失去支持超过五年了。

关于php - mysql_affected_rows() 返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6722809/

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