Правильный формат запросов PDO и MySQL IN / NOT IN

По причинам, которые должны быть очевидны, это убийство для поиска …

Как это сделать в 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) . ")";