为简单的 Redshift (Postgres8) 查询传递数组参数时遇到了一些困难,如下所示:
// Example:
$sql = "select * from country where country_code IN ($1) LIMIT 10";
$params = ["'GB','US'"];
pg_send_query_params($conn, $sql, $params);
Redshift 引擎不关心我试图传递的任何“数组”格式 对于整数[]也会发生同样的情况
我一直在尝试以各种方式传递参数,例如
"'GB','US'"
"{'GB','US'}"
"['GB','US']"
"('GB','US')"
"ARRAY['GB','US']"
// etc...
我也一直在尝试使用强制转换运算符作为参数,例如
IN ($1::text[])
这些都没有按预期工作
正如@FrankHeikens 评论的那样,使用
$sql = 'select * from country where country_code = any($1::text[]) LIMIT 10';
$params = '{GB,US}';