无法使用 PDO 为 WHERE IN 子句绑定参数
您的代码尝试使用 PDO 为 WHERE IN 子句绑定参数,但是它始终返回计数 1。用变量本身替换参数化值会产生准确的计数。出现这种差异的原因是 PDO 无法有效绑定 IN 子句的参数。
提供的数组被内爆为逗号分隔的字符串并分配为参数值。但是,数据库将此字符串解释为单个值,类似于使用:
SELECT foo FROM bar WHERE ids IN ('1,2,3')
尽管存在多个值,数据库仍将其视为单个字符串。要解决此问题,您必须手动将 IN 列表插入到查询中:
'SELECT foo FROM bar WHERE ids IN (' . $myArray .')'
此方法可确保每个数组元素都正确包含在 IN 子句中。不幸的是,目前没有其他可行的解决方案可以使用 PDO 在 WHERE IN 子句中绑定参数。
以上是为什么PDO在WHERE IN子句中绑定参数失败?的详细内容。更多信息请关注PHP中文网其他相关文章!