データを更新する前に、MySQL がデータが変更されたかどうかを判断するかどうか
MySql{MyPhpAdmin} で更新ステートメントを実行します:
update tableA set a=1 where id=2
a の元の値が 1 の場合、MySql は直接「影響を受ける行は 0 行」を返します。
a の元の値が 1 でない場合、「1 行が影響を受けます」が返されます。
MySql は、更新ステートメントを実行する前に、新しい値と古い値を比較しますか? 変更がある場合、変更のみが行われ、更新ステートメントは実行されません。
そしてPHPでは
mysql->query(); ステートメントが実行されると、ステートメント自体にエラーがなければ、直接 true が返されます。 update を実行すると、構文が正しく、条件が間違っている場合、クエリは直接 true を返します。
mysql->affected_rows を使用して判断すると、上記の mysql で述べた問題が発生します。ステートメントは正しく、条件も正しいのに、データは変更されず、0 行が返されます。このように、更新ステートメントが実際に正常に実行され、特定のデータに影響を与えていることをどのように確認すればよいでしょうか。