我尝试从数据库获取一些值
$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/