Хобрук: Ваш путь к мастерству в программировании

Оператор ИЛИ для одного столбца PDO

Я переключаю соединения с базой данных с mysqli на PDO. При обновлении я застрял на одном запросе: в mysql это:

$quec='designation=10 OR designation=11 OR designation=12';
$query="select firstname,mobile,email from mt where location=".$value." and cp!=".$cpa" and (".$quec.") and dept=".$usersubdept." and mstatus=1";

Он отлично работает в mysqli. В PDO я написал:

$query="select firstname,mobile,email from mt where location=:value AND cp!=:cpa AND (:quec) AND dept=:usersubdept AND mstatus=:mstatus";

Связывая значения с переменными, используя синтаксис связывания, я не получаю никакой строки результата. Как исправить проблему?


  • Вы получаете какую-либо ошибку? если нет, то это должна быть проблема с привязкой! 11.06.2016

Ответы:


1

Я не думаю, что вы можете использовать :quec в качестве параметра, поскольку на самом деле это 3 вещи, а не значение, которое можно связать. В противном случае у вас может быть что-то не так с тем, как вы привязываетесь, возможно, но мы не видели ваш код для этого. Попробуй это:

$query="SELECT firstname, mobile, email FROM mt WHERE location = :value AND
cp != :cpa AND (" . $quec . ") AND dept = :dept AND mstatus = 1";

$stmt = $db->prepare($query);
$stmt->bindValue(':value',$value);
$stmt->bindValue(':cpa',$cpa);
$stmt->bindValue(':dept',$usersubdept);

$stmt->execute();
11.06.2016

2

Вам нужно подготовить такую ​​строку: ':id0, :id1, :id2, вы можете сделать это так:

$designationlist = ':id'.implode(',:id', array_keys($designationIds));

тогда ваш SQL будет:

$query="select firstname,mobile,email from mt where location=:value AND cp!=:cpa AND designation IN(".$designationlist.") AND dept=:usersubdept AND mstatus=:mstatus";

а также:

$parms = array_combine(explode(",", $designationlist), $designationIds);
$stmt  = $PDO->prepare($query);
$res  = $stmt->execute($parms);
11.06.2016
Новые материалы

Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

Фишинг — Упаковано и зашифровано
Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..

ВЫ РЕГРЕСС ЭТО?
Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

Не зря же это называют интеллектом
Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..

LeetCode Проблема 41. Первый пропущенный положительный результат
LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..

Расистский и сексистский робот, обученный в Интернете
Его ИИ основан на предвзятых данных, которые создают предрассудки. Он словно переходит из одного эпизода в другой из серии Черное зеркало , а вместо этого представляет собой хронику..

Управление состоянием в микрофронтендах
Стратегии бесперебойного сотрудничества Микро-фронтенды — это быстро растущая тенденция в сфере фронтенда, гарантирующая, что удовольствие не ограничивается исключительно бэкэнд-системами..