(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)
PDO::query — Prépare et Exécute une requête SQL sans marque substitutive
$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() prépare et exécute une requête SQL en un seul appel de fonction, retournant la requête en tant qu'objet PDOStatement.
Pour une requête qu'il faut exécuter plusieurs fois, on réalisera de meilleures performances si l'on prépare l'objet PDOStatement en utilisant la fonction PDO::prepare() et exécute la requête via plusieurs appels à la fonction PDOStatement::execute().
Si on ne récupère pas toutes les données du jeu de résultats avant d'exécuter le prochain appel à PDO::query(), l'appel peut échouer. Appeler PDOStatement::closeCursor() pour libérer les ressources de la base de données associées à l'objet PDOStatement avant d'exécuter le prochain appel à la fonction PDO::query().
Note:
Si
querycontient des marqueurs de substitution, la requête doit être préparée et exécutée séparément en utilisant les méthodes PDO::prepare() et PDOStatement::execute().
queryLa requête SQL à préparer et à exécuter.
Si le SQL contient des marqueurs de substitution, PDO::prepare() et PDOStatement::execute() doivent être utilisés à la place. Alternativement, le SQL peut être préparé manuellement avant d'appeler PDO::query(), avec les données correctement formatées en utilisant PDO::quote() si le pilote le supporte.
fetchMode
Le mode de récupération par défaut pour le
PDOStatement retourné.
Ceci doit être une des constantes
PDO::FETCH_*.
Si cet argument est passé à la fonction, le reste des arguments seront traités comme si PDOStatement::setFetchMode() avait été appelé sur l'objet de la requête résultante. Les arguments suivants dépendent du mode de récupération sélectionné.
Retourne un objet PDOStatement ou false si une erreur survient.
Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini
à PDO::ERRMODE_WARNING.
Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini
à PDO::ERRMODE_EXCEPTION.
Exemple #1 SQL sans marqueurs de substitution peut être exécuté en utilisant 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";
}
?>L'exemple ci-dessus va afficher :
apple red 150 banana yellow 250 kiwi brown 75 lemon yellow 25 orange orange 300 pear green 150 watermelon pink 90