В системе, над которой я работаю, которая использует Propel для обработки базы данных, я готовлю необработанный запрос, который должен принимать изменяющееся условие WHERE IN.
Простой пример того, что я пытаюсьсделать это:
$c = Propel::getConnection();
$q = $c->prepare("SELECT foo FROM bar WHERE blah IN(:ids)");
$q->execute(array(':ids' => array(1, 2, 3, 4, 5)));
Очевидно, это не работает для меня.Я также попытался использовать implode (',' array (1, 2, 3, 4, 5)) в качестве параметра my:: ids, который также не работает.Первый метод жалуется на необходимость принятия массива, а второй метод жалуется на сравнение строки с целым числом.
Есть ли правильный способ передать массив значений в запрос для WHERE IN?Я не хочу жестко его кодировать, так как это будет означать подготовку к каждой итерации цикла.
Обратите внимание, что у меня нет возможности создать критерий и использовать вместо него doSelect, так какзапрос на самом деле намного сложнее, чем приведенный здесь пример, и я серьезно сомневаюсь, что смог бы построить его таким образом.
Большое спасибо!