如何使用 PDO 正确绑定 WHERE IN 子句的参数?

DDD
发布: 2024-11-17 13:38:02
原创
790 人浏览过

How to Properly Bind Parameters for a WHERE IN Clause with PDO?

使用 PDO 绑定 WHERE IN 子句的参数

使用 PDO 执行带有 WHERE IN 子句的查询时,参数绑定可能不起作用正如预期的那样。如提供的代码片段所示,将逗号分隔的值列表绑定到 :ids 参数会导致计数为 1,尽管数组中有多个值。

说明

问题在于 IN 子句期望值的格式如何。绑定数组时,PHP 将所有元素组合成一个字符串,该字符串被数据库视为一个参数。这会导致执行以下查询:

SELECT foo FROM bar WHERE ids IN ('1,2,3')
登录后复制

但是,IN 子句要求每个值都是单独的参数:

SELECT foo FROM bar WHERE ids IN (1, 2, 3)
登录后复制

解决方案

要解决此问题,必须手动将 IN 列表插入查询字符串中:

'SELECT foo FROM bar WHERE ids IN (' . $myArray .')'
登录后复制

或者,可以使用 bindParam 方法绑定单个值而不是数组。

以上是如何使用 PDO 正确绑定 WHERE IN 子句的参数?的详细内容。更多信息请关注PHP中文网其他相关文章!

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