我得到一个奇怪的结果,以下是简单更新查询后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) ...
答案 0 :(得分:0)
当使用“root”作为mysql用户登录(无密码)时,会出现上述行为。 当使用其他用户时,正确地给出了affected_rows。
奇怪! 似乎这是mysql或PHP中的某种错误。 我不知道向谁汇报或向谁报告。