質問: PHP PDOで bindValueI()やbindParam()をかませてexecute() し、プリペアドステートメントを実行するのと、
回答: bindValueでは、データ型を指定するので、データ型に応じたチェックが行われます。 execute メソッドでbind するとデータ型はすべて文字列型として処理されます。 数値型でなければならない値を文字列型でbindしてしまうと、文字列と数値の自動変換がおきて、データベースによっては、思わぬinjectionを起こすことにもつながります。