(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
PDO::query — Ejecuta una sentencia SQL, devolviendo un conjunto de resultados como un objeto PDOStatement
$statement
, int $PDO::FETCH_CLASS
, string $classname
, array $ctorargs
) : PDOStatementPDO::query() ejecuta una sentencia SQL en una única llamada a función, devolviendo el conjunto de resultados (si los hay) que devuelve la sentencia como un objeto PDOStatement.
Para una consulta que se necesite ejecutar en múltiples ocasiones, se obtendrá una mejor rendimiento si se prepara un objeto PDOStatement usando PDO::prepare() y ejecutando la sentencia con múltiple llamadas a PDOStatement::execute().
Si no se buscan todos los datos del conjunto de resultados antes de ejecutar la siguiente llamada a PDO::query(), ésta puede fallar. Llamando a PDOStatement::closeCursor() se liberan los recursos de la base de datos asociados al objeto PDOStatement antes de ejecutar la siguiente llamada a PDO::query().
Nota:
Aunque esta función está documentada solamente teniendo un único parámetro, se pueden pasar argumentos adicionales a esta función. Éstos serán tratados como si se llamase a PDOStatement::setFetchMode() con el objeto de la sentencia resultante.
statement
La sentencia SQL a preparar y ejecutar.
Los datos dentro de la consulta deben ser debidamente escapados.
PDO::query() devuelve un objeto PDOStatement, o FALSE
en caso de error.
Ejemplo #1 Demostración de PDO::query
Una buena característica de PDO::query() es que permite iterar sobre el conjunto de filas devueltos por una ejecución de una sentencia SELECT con éxito.
<?php
function getFruit($conn) {
$sql = 'SELECT name, color, calories FROM fruit ORDER BY name';
foreach ($conn->query($sql) as $row) {
print $row['name'] . "\t";
print $row['color'] . "\t";
print $row['calories'] . "\n";
}
}
?>
El resultado del ejemplo sería:
apple red 150 banana yellow 250 kiwi brown 75 lemon yellow 25 orange orange 300 pear green 150 watermelon pink 90