テーブル名やフィールド名にプレースホルダは使えないみたい

SQLのprepared statementは、データ部分をプレースホルダに置き換えて作成します。例えば

$rs = pg_prepare($conn, "abc", 'SELECT name FROM mytable WHERE id = $1');
pg_execute($conn, "abc", array(1));

しかし、テーブル名やフィールド名にはプレースホルダは使えないようです。こんな感じのものはダメ。

$rs = pg_prepare($conn, "abc", 'SELECT $1 FROM $2 WHERE id = $3');
pg_execute($conn, "abc", array("name', "mytable", 1));

今回作っていたプログラムがテーブル名やフィールド名が可変だったのでやってみたのですが、普通はやりませんよね。

スポンサーサイト

テーマ: プログラミング | ジャンル: コンピュータ

「Effective JavaScript」を借りてきた | Home | ドストエフスキー「悪霊」のフランス語部分について

コメント

コメントの投稿


非公開コメント

このページのトップへ