影響を受ける行が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つあると言います。*エラーがない場合は、ユーザーに「変更なし」と報告するだけです。