PDOのrowCount
ブログ移転記念?に記事を書いてみた。
PHPのPDOで気づいた点。
PDOStatement->rowCountはUPDATE,INSERT,DELETEで更新された行数を取得するメソッドですが、MySQLの場合は実際に変更された行数が取得されるとのこと。
INSERT,DELETEは問題ないですが、UPDATEの場合は更新内容が更新前と同じだとrowCountは0を返してきます。
http://www.php.net/manual/ja/function.mysql-affected-rows.phpに下記の記述があります。
UPDATE を使用する場合、MySQL では新旧の値が同じときには更新処理を行いません。
レコードをUPDATE→更新が0件だったらINSERTというロジックを使っている場合は要注意。
対策としてはUPDATE時には最終更新日みたいなカラムを更新するようにしています。