Этот вопрос закрыт для ответов, так как повторяет вопрос Как сделать PDO + IN?

Как забиндить через execute массив строк в IN SQLite оператор PDO?

Имеется строка получаемая из переменной POST/GET вида (text1,text2,text3,text4,text5). Количество значений не определено, но все они текстовые. Как забиндить их в execute? то есть я могу так и передать как строку, но тогда IN получит одну строку по идее. Как решить вопрос?
$tags= $_POST['tags']; // тут (текст,текст,текст,текст)

$db = new PDO('sqlite: files.sqlite');
$query = $db->prepare("SELECT * FROM files WHERE tags IN (:tags)");
$query->execute(array(':tags' => explode(',',$tags)));

пока пришла мысль только так
$tags= $_POST['tags']; // тут (текст,текст,текст,текст)

$db = new PDO('sqlite: files.sqlite');
$query = $db->prepare("SELECT * FROM files WHERE tags IN (:tags)");
$query->execute(array(':tags' => "'" . explode("', '",$tags) . "'"));
  • Вопрос задан
  • 223 просмотра
Решения вопроса 1
@senior65
По-моему тут это обсуждалось
туть
Ответ написан
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
https://phpdelusions.net/pdo#in

С именованными плейсхолдерами возни больше, так что я настоятельно рекомендую позиционные. Особенно если плейсхолдер в запросе только один.
Ну вот не понимаю я смысла писать несчастное имя поля 4 раза, когда достаточно одного
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы