(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 que vous devez exécuter plusieurs fois, vous réaliserez de meilleures performances si vous préparez l'objet PDOStatement en utilisant la fonction PDO::prepare() et exécutez la requête via plusieurs appels à la fonction PDOStatement::execute().
Si vous ne récupérez pas toutes les données du jeu de résultats avant d'exécuter le prochain appel à PDO::query(), votre 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 votre prochain appel à la fonction PDO::query().
Note:
Si
query
contient des marqueurs de substitution, la requête doit être préparé et exécuté séparément en utilisant les méthodes PDO::prepare() et PDOStatement::execute().
query
La requête SQL à préparer et à exécuter.
Si le SQL contient des marqueurs de substitution, PDO::prepare() et PDOStatement::execute() doivent être utilisé à la place. Alternativement, le SQL peut être préparé manuellement avant d'appeler PDO::query(), avec les données proprement formaté 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é comme si PDOStatement::setFetchMode() a été appelé sur l'objet de la requête résultante. Les arguments suivant dépendent en fonction du mode de récupération sélectionné.
Retourne un object 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é 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