PDO::prepare

(no version information, might be only in CVS)

PDO::prepare --  Prépare une requête à l'exécution et retourne un objet

Description

PDOStatement PDO::prepare ( string statement [, array driver_options] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Prépare une requête SQL à être exécutée par la méthode PDOStatement::execute(). La requête SQL peut contenir zéro ou plusieurs noms (:name) ou marqueurs (?) pour lesquels les valeurs réelles seront substituées lorsque la requête sera exécutée.

Appeler les fonctions PDO::prepare() et PDOStatement::execute() pour les requêtes qui seront appelées plusieurs fois avec des valeurs de paramètres différents optimise les performances de votre application et vous aide à prévenir les attaques par injection SQL.

Liste de paramètres

statement

Doit être une requête SQL valide pour le serveur de base de données cible.

driver_options

Ce tableau contient une ou plusieurs paires clé=>valeur pour définir les valeurs des attributs pour l'objet PDOStatement que cette méthode retourne. Vous pouvez utiliser ceci pour définir la valeur PDO_ATTR_CURSOR à PDO_CURSOR_SCROLL pour demander un curseur scrollable.

Valeurs de retour

Si le serveur de base de données prépare avec succès cette requête, PDO::prepare() retourne un objet PDOStatement.

Exemples

Exemple 1. Prépare une requête SQL avec des paramètres nommés

<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$sql = 'SELECT nom, couleur, calories
    FROM fruit
WHERE calories < :calories AND couleur = :couleur'
$sth = $dbh->prepare($sql, array(PDO_ATTR_CURSOR, PDO_CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':couleur' => 'rouge'));
$red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':couleur' => 'jaune'));
$yellow = $sth->fetchAll();
?>

Exemple 2. Prépare une requête SQL avec des marqueurs

<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?'
);
$sth->execute(array(150, 'rouge'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'jaune'));
$yellow = $sth->fetchAll();
?>

Voir aussi

PDO::exec()
PDO::query()
PDOStatement::execute()