Задать вопрос
sorry_i_noob
@sorry_i_noob

Как в mysqli_stmt::bind_param в качестве второго, третьего... n-го параметра использовать массив (видел туториалы, но они на английском и запутанные)?

Здравствуйте. Как мне это сделать? Можете привести код?
Вот, что у меня есть, например. Но это не работает. Я знаю - нельзя отправлять массив в bind_param. Но как это обойти?

$stmt = $mysqli->prepare("SELECT * FROM comments WHERE id IN (" . $question_marks . ") ORDER BY id DESC");
$stmt->bind_param($types, $params);
$stmt->execute();

$types - это "iiii"
$params - это [1, 3, 4, 6]
$question_marks - это "?,?,?,?"
  • Вопрос задан
  • 177 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
DevMan
@DevMan
$params = [1, 3, 4, 6];
$clause = implode(',', array_fill(0, count($params), '?'));
$types = str_repeat('i', count($params));
$stmt = $mysqli->prepare("SELECT * FROM comments WHERE id IN ($clause)");
$stmt->bind_param($types, ...$params);
$stmt->execute();
$resArr = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
if(!$resArr) exit('No rows');
var_export($resArr);
$stmt->close();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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