#php #mysqli #prepared-statement
#php #mysqli #подготовленный оператор
Вопрос:
Я выполняю некоторые запросы к базе данных MySQL, используя расширение MySQLi в PHP. Мне нужно выполнить запрос, подобный этому:
SELECT col1, col2 FROM mytable WHERE id IN (2, 4, 6);
Это конкретный пример запроса, но количество идентификаторов внутри круглой скобки после IN
ключевого слова будет отличаться. Поскольку я хочу использовать mysqli->prepare()
функцию (подготовленный оператор) Я бы сделал это так:
$statement->prepare("SELECT col1, col2 FROM mytable WHERE id IN (?)");
$statement->bind_pararm("s".... something)
Я не уверен, что поместить в функцию bind param, поскольку я не могу знать, сколько идентификаторов на самом деле будет запрошено. Я не смог найти примеров использования IN
ключевого слова внутри подготовленных операторов.
Ответ №1:
Если вы подготовите свое заявление, когда оно вам понадобится, вы можете создать заполнители, такие как
join(",", array_fill(0, count($ids) , "?"))
или что-то в этом роде.