(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)
PDO::query — Prepara y ejecuta una consulta SQL sin marcadores de sustitución
$query
, ?int $fetchMode
= PDO::FETCH_COLUMN, int $colno
): PDOStatement|false$query
,$fetchMode
= PDO::FETCH_CLASS,$classname
,$constructorArgs
$query
, ?int $fetchMode
= PDO::FETCH_INTO, object $object
): PDOStatement|falsePDO::query() prepara y ejecuta una consulta SQL en una sola llamada de función, retornando la consulta como objeto PDOStatement.
Para una consulta que debe ejecutarse varias veces, se obtendrán mejores resultados si se prepara el objeto PDOStatement utilizando la función PDO::prepare() y se ejecuta la consulta mediante múltiples llamadas a la función PDOStatement::execute().
Si no se recuperan todos los datos del conjunto de resultados antes de ejecutar la siguiente llamada a PDO::query(), la llamada puede fallar. Llamar a PDOStatement::closeCursor() para liberar los recursos de la base de datos asociados al objeto PDOStatement antes de ejecutar la siguiente llamada a la función PDO::query().
Nota:
Si
query
contiene marcadores de sustitución, la consulta debe prepararse y ejecutarse por separado utilizando las funciones PDO::prepare() y PDOStatement::execute().
query
La consulta SQL a preparar y ejecutar.
Si el SQL contiene marcadores de sustitución, PDO::prepare() y PDOStatement::execute() deben ser utilizados en su lugar. Alternativamente, el SQL puede ser preparado manualmente antes de llamar a PDO::query(), con los datos correctamente formateados utilizando PDO::quote() si el controlador lo soporta.
fetchMode
El modo de recuperación por omisión para el
PDOStatement retornado.
Esto debe ser una de las constantes
PDO::FETCH_*
.
Si este argumento es pasado a la función, el resto de los argumentos serán tratados como si PDOStatement::setFetchMode() hubiera sido llamado sobre el objeto de la consulta resultante. Los argumentos siguientes dependen del modo de recuperación seleccionado.
Retorna un objeto PDOStatement o false
en caso de error.
Emits an error with level E_WARNING
if the attribute PDO::ATTR_ERRMODE
is set
to PDO::ERRMODE_WARNING
.
Throws a PDOException if the attribute PDO::ATTR_ERRMODE
is set to PDO::ERRMODE_EXCEPTION
.
Ejemplo #1 SQL sin marcadores de sustitución puede ser ejecutado utilizando PDO::query()
<?php
$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