Задать вопрос
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 - это "?,?,?,?"
  • Вопрос задан
  • 152 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 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();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы