原因应该是显而易见的,这是谋杀搜索…
如何在PDO中实现:
SELECT thing FROM things WHERE thing_uid IN ( ... )
我的特殊用例是一个字符串,它是通过从一个带有几十个复选框的表单中取出一个数组来展开的。在标准的MySQL中,这是非常容易的…
$thingString = implode("', '", $thingArray);
$q = "SELECT thing FROM things WHERE thing_uid IN ('$thingString')";
但我想从PDO的抗注射保护中受益…绑定参数等等。那么我该怎么做呢?
创建一个包含所有?
值的数组,并将其放入查询中。
$placeholders = array_fill(0, count($thingArray), '?');
$sql = "SELECT thing FROM things WHERE thing_uid IN (" . implode(',', $placeholders) . ")";