mam wyboru rekordów z bazy danych przy użyciu równowartość tej kwerendy:Zend DB fetchAll(): gdzie macierz klauzuli z operatorem IN
SELECT * FROM reports WHERE user_id IN (3, 6, 22);
funkcji wywołującej fetchAll() ma argument, który jest tablicą identyfikatory użytkownika, a to wywołanie działa dobrze:
$resultSet = $this->getDbTable()->fetchAll('user_id IN (' . implode(', ', $userIds) . ')');
jednak chciałbym używać tablicy dla klauzuli WHERE ponieważ tam będzie prawdopodobnie inne ograniczenia do zapytania później ... i nie mogę zorientujcie się, jak to się dzieje w moim życiu. Pomyślałem, że będzie to pewna wariacja na temat:
$resultSet = $this->getDbTable()->fetchAll(array('user_id IN ?' => '(' . implode(', ', $userIds) . ')'));
Ale do tej pory żadnych kości. Czy ktoś może podać poprawną składnię?
dobrze, to dla fetchAll() zamiast gdzie(), ale to jest bilet. Próbowałem wcześniej 'user_id IN (?)', Ale powiązałem go z wynikiem z implode(), a nie tylko bezpośrednio z tablicy. – Cyranix