Non è necessario chiamare PDO::query() . Per un'istruzione preparata, chiami PDO::prepare() , quindi PDOStatement::execute() esegue la query e puoi recuperare il risultato utilizzando PDOStatement::fetch* .
PDO::query() viene utilizzato solo per SQL dinamico; prende come argomento la string Istruzione di query SQL es. SELECT dichiarazione, ecc.