如何将 PHP 数组作为参数传递给 Postgres 查询

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

我尝试如下将 PHP 数组传递给 Postgres,但出现错误;

$arrayIDs = array('24','7','8','9','13');

$data = SelectItemsForUpdate($arrayIDs);

function SelectItemsForUpdate($arrayIDs) 
{ 
  $query = PrepareQuery('select id, quantity from items where id in ($1) for update ');      
  $result = ExecutePreparedQuery($query, Array($arrayIDs));          
  ...
  ...
} 
   
postgresql postgresql-9.5
1个回答
0
投票

Postgres 数组需要大括号,而 PHP 需要圆括号。因此,首先如下所示分解数组,然后使用 ANY 运算符将其作为参数传递。

以下语法有效:

$arrayIDs = '{'.implode(', ',$arrayIDs).'}';               
$query = PrepareQuery('select id, quantity from items where id = ANY($1)');
$result = ExecutePreparedQuery($query, Array($arrayIDs)); 
© www.soinside.com 2019 - 2024. All rights reserved.