首页 > 数据库 > mysql教程 > 为什么PDO在WHERE IN子句中绑定参数失败?

为什么PDO在WHERE IN子句中绑定参数失败?

Susan Sarandon
发布: 2024-11-18 02:37:02
原创
653 人浏览过

Why Does PDO Fail to Bind Parameters in WHERE IN Clauses?

无法使用 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板