Nie musisz wywoływać PDO::query() . Aby uzyskać przygotowaną instrukcję, wywołujesz PDO::prepare() , a następnie PDOStatement::execute() wykonuje zapytanie i możesz pobrać wynik za pomocą PDOStatement::fetch* .
PDO::query() jest używany tylko do dynamicznego SQL; jako argument przyjmuje ciąg Zapytanie SQL np. SELECT oświadczenie itp.