MysqliDb or IN и and

pehser

Новичок
Может кто подскажет как в MysqliDb Реализовать в select
SQL:
where (a.id in (1,2) or b.id in (5,6)) and c.name='helo'
из мануального
Код:
$db->where ("(id = ? or id = ?)", Array(6,2));
$db->where ("login","mike")
$res = $db->get ("users");
но с IN такой метод не работает...
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
Почему же не работает?
Код:
$db->where ("(a.id in (?,?) or b.id in (?,?)) and c.name=?", [1,2,5,6,"helo"]);
 

AnrDaemon

Продвинутый новичок
Выкинь бяку, возьми нормальный Query Builder. Или уже пиши запросы сам.
 

fixxxer

К.О.
Партнер клуба
Код:
$db->where ("(id in ? or id in ?)", Array('1,2','5,6'));
Ну давай разбираться, что это делает.
В массиве два элемента: "1,2" и "5,6".
При подстановке получается запрос:
... where (id in "1,2" or id in "5,6") ..
При кастинге строк к интам получается 1 и 5.
Соответственно, совершенно логично выходит, что
Советую еще раз прочитать то, что написано по ссылке, которую я дал. Внимательно, с осмыслением там написанного, а не пытаясь что-то скопипастить без понимания.
 
Сверху