При переходе на PDO, уперся в очередную "засаду".
Есть запрос (упрощен до нельзя для простоты понимания)
SELECT * FROM tovar WHERE num IN(:num)
$itog->bindValue(':num', 1,2,3,4,5,6,7,8,);
$itog->execute();
Пробовал и массив передавать в bindValue и циклом его выводить и еще разные варианты, но итог один... Выводится ТОЛЬКО ПЕРВАЯ ЦИФРА из всего ряда.
Тоесть как не крути, а запрос получается только
SELECT * FROM tovar WHERE num IN(1 или 2 или 3 или 4 или т.д),
но никак не
SELECT * FROM tovar WHERE num IN(1,2,3,4,5,6,7,8)
Подскажите плз умным словом (хоть намек куда думать).
Видел тут идентичную тему
Как создать подготовленный запрос с IN()?
и там только один ответ и он удручает. Неужели всесильный PDO действительно без костыля не может "переварить" такую задачу.
Собственно решение нашел такое.
$param = str_repeat('?,', count($_GET['param']) - 1) . '?'; получаем ?,?,?,?,? в том количестве, сколько выбрано чек боксов.
db->prepare(SELECT * FROM tovar WHERE num IN($param));
db->execute($_GET['param']);
Запрос работает как надо, а вот как сделать его безопасным от SQL инъекций кто может подсказать? Не могу никак сообразить...
Судя по всему кавычки пропустили
$itog->bindValue(':num', '1,2,3,4,5,6,7,8');
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть путь к изображениюКак получить ширину и высоту изображения по данному пути средствами PHP
Хочу подключить к базе данных динамически, чтобы пользователь мог подключиться только к своей базеMysqli есть несколько пользователей и я хочу...
Недавно потребовалось настроить сервер wamp для развертывания проекта на laravelНо встретился вот с такой ошибкой Call to undefined function Illuminate\Encryption\openssl_cipher_iv_length()