$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也失败了.仅使用逗号分隔的字符串也会失败.
我在谷歌上找不到好的文档,你怎么解决这个问题?
解决方法:
看看之前提到过的类似问题的答案(第二个代码示例):
归结为:
>使用适量的问号创建SQL字符串
>使用call_user_func_array()将数组绑定到查询字符串
标签:php,mysqli,sql-in
来源: https://codeday.me/bug/20191001/1838782.html