W dokumentacji pisze:
Cytat
Return Values
PDO->query() returns a PDOStatement object.
A jak można przeczytać w komentarzach :
Cytat
Please note that when Query() fails, it does not return a PDOStatement object . It simply returns false.
I trzeba ręcznie to obsłużyć.
I jak też przy sprawdzaniu czy coś zostało zwrócone używam fetch() !== false, tylko czemu zwraca false, a nie null?
W ogóle powinni dać normalny iterator.