Этот оператор не работает с 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));
Почему ? COALESCE
каким-либо образом изменяет тип данных $ 1 или гарантирует какой-то простой тип данных в результате?
Изменить : Документы довольно краткие по теме COALESCE
.