У меня есть запрос, как это с пунктом ВPHP массив MySQL Query
SQL = "
некоторые запросы ГДЕ some_item В()
";
Должен ли я сделать цикл for, чтобы поместить все элементы php-массива в предложение IN или есть функция или метод, которые это делают?
У меня есть запрос, как это с пунктом ВPHP массив MySQL Query
SQL = "
некоторые запросы ГДЕ some_item В()
";
Должен ли я сделать цикл for, чтобы поместить все элементы php-массива в предложение IN или есть функция или метод, которые это делают?
Вы можете попробовать лопаются
$item_ids = array(1, 2, 3, 4, 5); // somehow populate this array
$item_list = implode(',', $item_ids);
$sql = "SOME QUERY WHERE some_item IN ({$item_list})";
http://php.net/manual/en/function.implode.php
вот быстрый пример:
$ массив = массив ('фамилия', 'электронная почта', 'телефон');
$ comma_separated = implode (",", $ array);
Для числовых значений в массиве:
sprintf("... WHERE some_item IN (%s) ...",implode(",",$numeric_array));
Для строковых значений:
sprintf("... WHERE some_item IN ('%s') ...",implode("','",$escaped_string_array));
Будьте осторожны, чтобы избежать значения при построение массивов.
Надеюсь, это поможет!
вы можете сделать array_filter() раньше с вызовом метода escape и т. Д. Http://php.net/manual/en/function.array-filter.php – dogmatic69
+1 для полезного комментария, спасибо :) – aorcsik
Если у вас есть список вещей в массиве, вы можете использовать JOIN для его создания. Это проще всего для числовых значений, так как вам не нужно ставить кавычки вокруг вещей. Что-то вроде этого:
$sql = 'SOME QUERY WHERE some_item IN (' . join(',', $a_myData) . ')';
Если массив содержит строки, вы должны бежать, что данные, как вы выразились данные в массив. Но как только вы это сделаете, вы можете сделать что-то подобное выше, добавив кавычки.
$sql = 'SOME QUERY WHERE some_item IN ("' . join('","', $a_myData) . '")';
Один потенциальный вопрос является пустым массивом, так как в приведенном выше примере даст вам IN ("")
, которые потенциально могли бы соответствовать то, что вы не хотите.
Приведенный выше пример также не учитывает значения NULL. Один из способов заключается в том, чтобы заполнить ваш массив строками с кавычками уже вокруг них (так что вы можете иметь NULL
в качестве своего собственного значения).
спасибо вам много! – Alexander
Примечание Вы можете [формат строки как код] (http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code- блоков), отложив их в четыре пробела. Кнопка «{}» на панели инструментов редактора делает это за вас. Измените свой вопрос и попробуйте его. Нажмите оранжевую метку вопроса на панели инструментов редактора, чтобы получить дополнительную информацию и советы по форматированию. – outis