Найти подходящие строки в базе данных, где столбец соответствует одной записи из динамического массива

У меня есть таблица с несколькими столбцами в нем, один из которых, помечен 'ID', содержит уникальный номер. Я отправляю список значений для извлечения в php-скрипт на стороне сервера, который использует подготовленный оператор для выполнения извлечения. В результате некоторых исследований я обнаружил, что, по-моему, ищу IN внутри моего заявления. Я понимаю, как жестко закодировать список в операторе, например: SELECT * FROM spotzz WHERE ID IN (465, 732, 219) или что-то в этом роде, но мое замешательство исходит из подготовленного заявления. мне нужно ? для каждого значения, которое я передаю в утверждение, но если длина списка не всегда одинакова, как мне это сделать?

0

Решение

Вы можете динамически сгенерировать подготовленную строку оператора на основе количества значений в вашем массиве:

$values = [1,2,3,4];

$sql = "SELECT * FROM spotzz WHERE `ID` IN (" .
// array_fill() creates an array with as many '?' as there are
// elements in $values. implodes() glues the new array elems with a ","implode(',', array_fill(0,count($values),'?')) .
")";

echo $sql; // SELECT * FROM spotzz WHERE `ID` IN (?,?,?,?)
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector