Задать вопрос
@danchiksux
Говнокодер

Как передать несколько значений в bind_param из массива?

Сделал скрипт который выполняет запрос в базу через подготовленный запрос, но почему-то не работает:
$arr = [1,3];
	$in  = str_repeat('?,', count($arr) - 1) . '?';
	$sql_favorites_item = "SELECT `id`,`name`,`price`,`old_price`,`img` FROM `shops` WHERE `id` IN ($in)";
	echo $sql_favorites_item;
	$stmt_favorites = $connection->prepare($sql_favorites_item);
	$stmt_favorites->bind_param('ii', $arr);
	$stmt_favorites->execute();

Ошибка:

Warning
: mysqli_stmt::bind_param(): Number of elements in type definition string doesn't match number of bind variables in
  • Вопрос задан
  • 165 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@danchiksux Автор вопроса
Говнокодер
Пытался найти ответ и понял в жопу это всё валю на PDO,
mysqli. Эта библиотека не предназначена для испрользования напрямую в коде. А только как строительный материал для создания библиотеки более высокого уровня. Напрямую же ей пользоваться невозможно. Легче пережить небольшую атомную войну, чем попытаться привязать несколько переменных в оператор IN().
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽