ホームページ >バックエンド開発 >PHPチュートリアル >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 行が返されます。このように、更新ステートメントが実際に正常に実行され、特定のデータに影響を与えていることをどのように確認すればよいでしょうか。
見てるだけで混乱してしまいます。 。
ステートメントが正しいかどうか、このデータが存在するかどうか、更新後に変更されたかどうかを知る必要があります。
すべてのニーズを満たすためには、最初に選択する必要があると思います。
見ているだけで混乱してしまいます。 。
ステートメントが正しいかどうか、このデータが存在するかどうか、更新後に変更されたかどうかを知る必要があります。
すべてのニーズを満たすためには、最初に選択する必要があると思います。
このように、どうやって知ることができますか?私の update ステートメントが実際に正常に実行されたことを確認します。
-- true を返すと成功を意味します
は特定のデータに影響します。
mysql->affected_rows
他のコンテンツが変更されない場合に影響を受ける行数が 0 にならないように、変更時間を記録するフィールドを追加することは可能ですか