このステートメントは、PostgreSQL 8.2.4 および PHP 5.2.17 では機能しません。
pg_query_params('SELECT $1', array(1));
ERROR: could not determine data type of parameter $1
けっこうだ。これは可能な修正です:
pg_query_params('SELECT CAST($1 AS INTEGER)', array(1));
データ型について明示しているので、これは理にかなっています。
ただし、次のステートメントも機能しますが、最初の式と同等である必要があります。
pg_query_params('SELECT COALESCE($1)', array(1));
なんで?$1 のデータ型をどうにかして変更しますかCOALESCE
、それとも単純なデータ型を結果として保証しますか?
編集:ドキュメントは、の件名ではかなり短いですCOALESCE
。