执行 SQL 语句时,例如 INSERT INTO table
... ON DUPLICATE KEY UPDATE ... 我依靠 mysql_affected_rows() 来确定是否执行了插入或更新。作为http://dev.mysql.com/doc/refman/5.1/en/mysql-affected-rows.html上的 mysql 站点,它指出:
对于 INSERT ... ON DUPLICATE KEY UPDATE 语句,如果将行作为新行插入,则受影响的行值为 1,如果更新现有行,则值为 2。
一切正常,直到我们升级到 MySQL 5.1.16,当许多查询现在有 mysql_affected_rows() 返回 MINUS ONE (-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() 正常工作?