0
我有一个简单的方法,它不工作,因为它应该 - 想使用准备好的语句,但不知何故它不执行;相反,原始查询工作得很好。PDO不执行语句
可能是什么问题?我应该将一些额外的参数传递给pdo方法吗?
$_POST['sequence'] = [
0 => 2,
1 => 1
];
if (!empty($_POST['sequence'])) {
$query = '
UPDATE '.$this->db->backtick($this->controller->table).'
SET `sequence` = CASE `id`'
;
foreach ($_POST['sequence'] as $sequence => $id) {
$values[':id'.$id] = $id;
$values[':sequence'.$sequence] = $sequence;
$query .= ' WHEN :id'.$id.' THEN :sequence'.$sequence;
}
$values[':ids'] = implode(',', array_values($_POST['sequence']));
$query .= ' END WHERE `id` IN (:ids)';
$statement = $this->db->handle->prepare($query);
$statement->execute($values); //doesn't work
//$query2 = str_replace(array_keys($values), array_values($values), $query);
//$this->db->handle->query($query2); works
}
你收到一条错误消息帕拉姆不绑定? –
请参阅:http://stackoverflow.com/questions/920353/can-i-bind-an-array-to-an-in-condition/28067015#28067015 – Progrock
@ destination-data否,没有错误。 – etilge