職場で使用しているデータベース ライブラリを更新して、パラメーター化されたクエリを使用できるようにしようとしています。これにより、SQL インジェクションについてあまり詳しくない同僚が入力をエスケープすることを忘れずに、代わりにパラメーターの配列を渡すだけで済むようになります (I' m を使用pg_query_params
)。
しかし、問題が発生しています。データベース ライブラリの要件の 1 つは、実行される各クエリをログに記録することです。パラメーターが入力された後、パラメーター化されたクエリのテキストを取得する方法がわかりません。これを行う方法はありますか (パラメーター化されたクエリ用に独自の関数をロールすることは別として、私は推測します)?
つまり、次のようなパラメータ化されたクエリを実行するとき
pg_query_params('SELECT id FROM table WHERE foo = $1', array('bar'));
のようなものを取得したい
SELECT id FROM table WHERE foo = 'bar'