此语句不适用于 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
.