Я просмотрел все, но я не могу найти никаких подробностей о том, можно ли легко и удобно передать массив непосредственно в аргумент оператора IN в подготовленном операторе MySQL.
Большинство мест предлагают ручное разбиение массива и построение инструкции, но должен быть лучший способ.
Здесь?
Спасибо заранее!
РЕДАКТИРОВАТЬ
Извините, не учтено, что это для подготовленного заявления через mysqli_stmt не традиционным способом. 🙁
Найден этот MySQLi Bind Param с массивом для IN
Что приводит к этому Как динамически связывать аргументы mysqli bind_param в PHP? которые я не мог заставить работать.
Затем увидел это. Могу ли я привязать массив к условию IN ()?
PDO> MySQLi
Поскольку оператор IN принимает значения в одинарной кавычной '
разделимой запятой строке» ( '1','2','3')
или ('alpha','beta','gama')
тогда как при использовании массива в операции IN и извлечении он становится струной без '
поэтому для использования и массива в операторе IN вы должны делать ниже
IN (".implode(',',$arr).")")
Вы можете использовать implode()
для преобразования массива в строки,
Например:
$array = array(100, 101, 200, 300); $query = 'SELECT * FROM table WHERE id IN ('.implode(',', $array).')';