我的sql语句中有IN的条件,在我的想象中可以这样写代码
$ids = array(2344, 5523, 9332);
$st = $pdo->prepare('SELECT * FROM table_name WHERE id IN (:id)');
$st->bindParam('id', $ids);
$st->execute();
但这样执行pdo会报错,无法绑定一个array变量,有没有好的解决方法呢
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PDO不支持绑定数组。
要么别用绑定了,
$ids = array(2344, 5523, 9332); // 过滤ids略 $in = implode(',',$ids); $st = $pdo->prepare('SELECT * FROM table_name WHERE id IN ('.$in.')'); $st->execute();如果你坚持用绑定或许只能这样
$ids = array(2344, 5523, 9332); // 自动构造多个?号略 $st = $pdo->prepare('SELECT * FROM table_name WHERE id IN (?,?,?)'); foreach ($ids as $k => $id) $st->bindValue(($k+1), $id); $st->execute();可以参考下,首先遍历构造几个问号,然后绑定参数