#1062 – Duplicate entry for key ‘PRIMARY’


phpMyAdminでは表題のエラー、Firebugには「Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064」というエラーが発生しました。

よくあるケースとしてプライマリキーが設定してあるフィールドに重複した値が入ったレコードをInsertした場合このエラーが出るのですが、私の場合Updateなのにこれが出て悩みました。

原因はwhere以降が抜けてしまっていたからでした。

× update `tbl` set ***
○ update `tbl` set *** where id = 1

where以降はif文で入れていたんですが、PHP7になり関数を変えたらオブジェクト型ではなく配列型になってしまいif文に引っかからなくてwhere以降が空になってました。

にほんブログ村 IT技術ブログへ