[SQL×php] HY000の2031が発生するので調べたら->query()ではなくて->prepare()だった

この記事の所要時間: 18

備忘録として。

追記17/6/6
このエラーは様々な状況で発生します。この記事はあくまで一例です。
どの状況でも基本的な部分が間違っていることが多いようなので、もう一度書いたコードを見直すと間違いが発見できるかもしれません。

こんなコードを書いていたら、「 ‘PDOException’ with message ‘SQLSTATE[HY000]: General error: 2031 ‘」が消えないので調べていたら、このエラーが色々な状況で発生するらしく見当違いな解決方法しか見つかりませんでした。

phpのマニュアルをもう一度読んでみたら->;queryは渡した瞬間に実行するのでその後にbindParam()しようと->;execute()しようと無駄らしい・・・ よく読まないと駄目ですね。

正しくはこちら

初歩的なミスでした。めでたしめでたし。