1

奇妙な結果が得られました。単純な更新クエリの後の mysqli オブジェクトの状態は次のとおりです。

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

ご覧のとおり、ected_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) ...
4

1 に答える 1

0

上記の動作は、「root」を mysql ユーザー ログイン (パスワードなし) として使用する場合に発生します。別のユーザーを使用すると、ected_rows が正しく指定されます。

変!これは、mysql または PHP の何らかのバグのようです。誰に、またはどのように報告すればよいかわかりません。

于 2013-05-31T21:18:31.183 に答える