我使用准备的语句将一些旧代码移动到新的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)?
归结为: