技術メモ

PDOでテーブル名・カラム名をbindParamするとエラーを吐くんだ 気を付けろ!

タイトルそのまんまなんですが、PHPでPDOのbindあるじゃないですか。

それでね、カラム名が動的に変わるSQLを書かないといけなくて意気揚々とbindParam使ってたんですよ。

こんな感じで。

$sql = 'SELECT * FROM sample_table WHERE :column = 1';

bindParam(':column', $col, PDO::PARAM_STR);

なーーーーにーーーー!?やっちまったなぁ!!

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ・・・

なんかね、そんなやり方サポートしてないんですって。

ついでにテーブル名もbindできません

bind使わずにゴリゴリてくしかありません。

気をつけろっ!