php - PDO绑定(bind)错误

标签 php pdo

我尝试从数据库获取一些值

$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_ids看起来像

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_ids就像

Array
(
   0 => 15087
)

关于php - PDO绑定(bind)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36496804/

相关文章:

php - 我正在尝试在表中添加一个下拉菜单框,其中包含从 mysql 获取的数据

php - 从外部 PHP 应用程序通过基本身份验证触发 Azure WebJobs API?

PHP 连接到 4D 数据库

Php MySql PDO BindParam 偶尔工作

php - 日期时间未保存到我的数据库,变成了 0000-00-00 00 :00:00

php - Javascript 字符串长度不同于 PHP mb_strlen

php - concat 写入数据两次

php - MySql PHP 选择 JSON 值

php - MySQL select 后没有换行符

php - 违反完整性约束的自定义错误消息