PHP mysqli affected_rows方法似乎有一个bug

时间:2013-05-31 18:59:55

标签: php mysqli rows-affected

我得到一个奇怪的结果,以下是简单更新查询后mysqli对象的状态:

"UPDATE charstate SET name = '-', type = 'The Homemaker' WHERE gameno = 1"

如您所见,affected_rows = -1但是...信息为“行匹配:3已更改:3警告:0” 并且查询已更新数据库。 我正在使用mysqli-> affected_rows来检查返回-1的成功并且我的测试失败但这是不正确的。

有什么想法吗?

mysqli object {
  affected_rows => (int) -1
  client_info => (string) mysqlnd 5.0.10 - 20111026 - $Id: 
  client_version => (int) 50010
  connect_errno => (int) 0
  connect_error => null
  errno => (int) 0
  error => (string)
  error_list => array(0)
  field_count => (int) 0
  host_info => (string) 127.0.0.1 via TCP/IP
  info => (string) Rows matched: 3  Changed: 3  Warnings: 0
  insert_id => (int) 0
  server_info => (string) 5.5.27
  server_version => (int) 50527
  stat => (string) Uptime: 11431  Threads: 6  Questions: 542  Slow queries: 0  Opens: 52  Flush tables: 1  Open tables: 2  Queries per second avg: 0.047
  sqlstate => (string) 00000
  protocol_version => (int) 10
  thread_id => (int) 114
  warning_count => (int) ...

1 个答案:

答案 0 :(得分:0)

当使用“root”作为mysql用户登录(无密码)时,会出现上述行为。 当使用其他用户时,正确地给出了affected_rows。

奇怪! 似乎这是mysql或PHP中的某种错误。 我不知道向谁汇报或向谁报告。