Você não precisa chamar
PDO::query() . Para uma instrução preparada, você chama PDO::prepare() , então PDOStatement::execute() executa a consulta e você pode recuperar o resultado usando PDOStatement::fetch* . PDO::query() é usado apenas para SQL dinâmico; toma como argumento a string Instrução de consulta SQL, por exemplo. SELECT declaração, etc.