由于显而易见的原因,这是谋杀... ...
我如何在PDO中执行此操作:
SELECT thing FROM things WHERE thing_uid IN ( ... )
我的特定用例是一个字符串,它是通过爆炸从一个带有几十个复选框的表单中取出的数组构建的。在标准MySQL中,这很容易......
$thingString = implode("', '", $thingArray);
$q = "SELECT thing FROM things WHERE thing_uid IN ('$thingString')";
但是我想要从PDO的反注射保护中获益......限制了所有这些。那我怎么能这样做呢?
答案 0 :(得分:6)
创建一个尽可能多的?
数组,并将其放入查询中。
$placeholders = array_fill(0, count($thingArray), '?');
$sql = "SELECT thing FROM things WHERE thing_uid IN (" . implode(',', $placeholders) . ")";