@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
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
@danchiksux Автор вопроса
Говнокодер
Пытался найти ответ и понял в жопу это всё валю на PDO,
mysqli. Эта библиотека не предназначена для испрользования напрямую в коде. А только как строительный материал для создания библиотеки более высокого уровня. Напрямую же ей пользоваться невозможно. Легче пережить небольшую атомную войну, чем попытаться привязать несколько переменных в оператор IN().
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
23 апр. 2024, в 19:21
300 руб./за проект
23 апр. 2024, в 19:05
15000 руб./за проект
23 апр. 2024, в 19:01
7000 руб./за проект