Необходимо создать SQL-предикат IN () динамическим образом, используя число указателей места заполнения, равное числу элементов переменной $bug_list. Пример, показанный ниже, использует в РНР некоторые встроенные функции массивов для создания указателей места заполнения массивов той же длины, что и переменная $bug_list, а затем для присоединения к этому массиву строк при помощи разделения запятыми перед тем, как интерполировать все это в SQL-выражение.
$sql = "SELECT * FROM Bugs WHERE bug_id IN ("
. joinfV, arrayjill (0, count ($bug_list), "?")) . ")";
$stmt = $pdo->prepare($sql);
$stmt->execute($bug_list);
Используйте этот метод для параметризации списков значений.
Изолируйте вводимые пользователем данные от кода
Параметры запроса и escape-методы помогают объединять литеральные значения в SQL-выражения, но они не помогут с другими частями оператора, такими как идентификаторы таблиц или столбцов или ключевые слова SQL. Вам необходимо другое решение, чтобы сделать эти компоненты запроса динамичными.
Опубликовал vovan666
August 17 2013 10:23:14 ·
0 Комментариев ·
3902 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.