出于显而易见的原因,这是要搜索的谋杀...
我如何在 PDO 中执行此操作:
SELECT thing FROM things WHERE thing_uid IN ( ... )
我的特定用例是通过分解从具有几十个复选框的表单中获取的数组构建的字符串。在标准 MySQL 中,这非常容易...
$thingString = implode("', '", $thingArray);
$q = "SELECT thing FROM things WHERE thing_uid IN ('$thingString')";
但我希望它能从 PDO 的反注入(inject)保护中受益……绑定(bind)参数等等。那我该怎么做呢?
最佳答案
创建一个包含与您的值一样多的 ?
的数组,并将其放入查询中。
$placeholders = array_fill(0, count($thingArray), '?');
$sql = "SELECT thing FROM things WHERE thing_uid IN (" . implode(',', $placeholders) . ")";
关于php - PDO 和 MySQL IN/NOT IN 查询的正确格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7062576/