加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 如何在mysqli预处理语句中使用IN子句

发布时间:2021-07-06 05:19:58 所属栏目:大数据 来源: https://www.jb51.cc
导读:参见英文答案 I have an array of integers, how do I use each one in a mysql query (in php)?????????????????????????????????????5个 我正在使用预处理语句将一些旧代码移动到新的msqli接口,我在使用包含IN子句的sql语句时遇到问题.我通常会这样做: $i

参见英文答案 > I have an array of integers, how do I use each one in a mysql query (in php)?????????????????????????????????????5个
我正在使用预处理语句将一些旧代码移动到新的msqli接口,我在使用包含IN子句的sql语句时遇到问题.我通常会这样做:

$ids = '123,535,345,567,878'
$sql = "SELECT * FROM table WHERE id IN ($ids)";
$res = MysqL_query($sql);

将其转换为MysqLi和预处理语句我尝试了许多解决方案:

$ids = '123,535,345,567,878'
$ids = implode($ids,',');
$result = $msqli->prepare("SELECT foo,blar FROM table WHERE id IN (?));
$result->bind_param("i", $ids);
$result->execute();

上面的操作失败并计算了数组中的元素数量并改变了sql字符串中的问号数量,并且对数组中的每个元素调用bind_parm也失败了.仅使用逗号分隔的字符串也会失败.

我在谷歌上找不到好的文档,你怎么解决这个问题?

解决方法:

看看之前提到过的类似问题的答案(第二个代码示例):

I have an array of integers, how do I use each one in a mysql query (in php)?

归结为:

>使用适量的问号创建sql字符串
>使用call_user_func_array()将数组绑定到查询字符串

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读