影響を受ける行が0になるもう1つの理由は、UPDATE
の場合です。 ステートメントは行に一致しません。例:
UPDATE MyTable SET field = 'content' WHERE id = 1234;
id = 1234
の行が存在しない場合、影響を受ける行を0にします 。これもエラーではなく、単なるUPDATE
です。 たまたまどの行にも一致しませんでした。
このケースを検出する方法は、SELECT
を使用することです。 そのような行があることを確認します。行が存在することを確認できても、UPDATE
0行に影響があると言った場合、変更しようとした値は実際にはデータベースにすでに存在する行であることがわかります。
SELECT COUNT(*) FROM MyTable WHERE id = 1234;
しかし、区別は重要ではないかもしれません。 mysql_error()
の場合、エラーを報告できます @BoltClockが示唆しているように、1つあると言います。*エラーがない場合は、ユーザーに「変更なし」と報告するだけです。