PHP pg_send_query_params 为 IN ($1) 传递 int[] 或 string[] 参数

问题描述 投票:0回答:1

为简单的 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[])

这些都没有按预期工作

php postgresql amazon-redshift
1个回答
0
投票

正如@FrankHeikens 评论的那样,使用

$sql = 'select * from country where country_code = any($1::text[]) LIMIT 10';
$params = '{GB,US}';
© www.soinside.com 2019 - 2024. All rights reserved.