PDOのプリペアドステートメントで実行するSQLを確認したい(?プレースホルダの場合)

モダンなフレームワークを使っていればこんなことで困ることもないんだろうけど、レガシーなオレオレフレームワークの面倒を見ないといけないこともあるよね。

そんな時はこんな感じでやるしかないんじゃないかな。

$values = array('123', '2016-03-10 00:00:00');
$sql = 'SELECT * FROM tablename WHERE id = ? AND create_date < ?';
$sql = vsprintf(str_replace('?', '%s', $sql), $values);
echo $sql;

あとはまぁ文字列を""で囲んだり、予約語は囲わないようにしたりすれば大丈夫。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です