Php PDO绑定错误

Php PDO绑定错误,php,pdo,Php,Pdo,我尝试从db中获取一些值 $client_ids = array('client_id' => $this->arParams['client_id']); print_r($client_ids); $client_ids_in = implode(',', array_fill(0, count($client_ids), '?')); $query = "SELECT odc.curr_id FROM office.dictionary_currency AS odc L

我尝试从db中获取一些值

$client_ids = array('client_id' => $this->arParams['client_id']);
 print_r($client_ids);
 $client_ids_in = implode(',', array_fill(0, count($client_ids), '?'));
 $query = "SELECT odc.curr_id FROM office.dictionary_currency AS odc LEFT JOIN office.adwords_clients_google AS oacg ON odc.curr_code = oacg.client_currency WHERE oacg.client_id IN ($client_ids_in)";
        $google_currency = $this->DB->prepare($query);
        $google_currency->execute($client_ids);
        $google_currency->setFetchMode(PDO::FETCH_ASSOC);
        $google_currency = $google_currency->fetch();
        $google_currency = $google_currency['curr_id'];
$client\u id
看起来像

Array
(
    [client_id] => 15087
)
$query

SELECT odc.curr_id FROM office.dictionary_currency AS odc LEFT JOIN office.adwords_clients_google AS oacg ON odc.curr_code = oacg.client_currency WHERE oacg.client_id IN (?)
我得到一个错误

PHP Warning:  PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /var/www/instruments/reports/report.php on line 531
这意味着,行中有错误

$google_currency = $this->DB->prepare($query);
出了什么问题?如何修复?

更改代码

 $client_ids = array('client_id' => $this->arParams['client_id']);
变成

 $client_ids = array($this->arParams['client_id']);
因此,
$client\u id
就像

Array
(
   0 => 15087
)

如果使用通用占位符
,则需要传递以执行非关联数组。 因此,您可以从数组中删除
'client\u id'
键,或者使用命名占位符

可能的解决方案

$client_ids = array($this->arParams['client_id']);

添加了$query,非常感谢您的帮助!非常感谢你的帮助!