php – 如何在mysqli准备语句中使用IN子句

前端之家收集整理的这篇文章主要介绍了php – 如何在mysqli准备语句中使用IN子句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用准备的语句将一些旧代码移动到新的msqli接口,我对包含IN子句的sql语句有困难.我通常会这样做:
$ids = '123,535,345,567,878'
$sql = "SELECT * FROM table WHERE id IN ($ids)";
$res = MysqL_query($sql);

将其转换为MysqLi和准备的语句我已经尝试了一些解决方案:

$ids = '123,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也会失败.只要使用逗号分隔的字符串也会失败.

我可以在Google上找到没有好的文档,那么你如何解决这个问题呢?

看一下以前问过的类似问题的答案(第二个代码示例):

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

归结为:

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

猜你在找的PHP相关文章