PDO::query

(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

Description

public PDO::query(string $query, ?int $fetchMode = null): PDOStatement|false
public PDO::query(string $query, ?int $fetchMode = PDO::FETCH_COLUMN, int $colno): PDOStatement|false
public PDO::query(
    string $query,
    ?int $fetchMode = PDO::FETCH_CLASS,
    string $classname,
    array $constructorArgs
): PDOStatement|false
public PDO::query(string $query, ?int $fetchMode = PDO::FETCH_INTO, object $object): PDOStatement|false

PDO::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 query contient 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().

Liste de paramètres

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é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é.

Valeurs de retour

Retourne un objet PDOStatement ou false si une erreur survient.

Erreurs / Exceptions

É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.

Exemples

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

Voir aussi