PDOStatement::execute
(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
PDOStatement::execute — Exécute une requête préparée
Description
$input_parameters
] )Exécute une requête préparée. Si la requête préparée inclut des marqueurs de positionnement, vous pouvez :
appeler la fonction PDOStatement::bindParam() pour lier les variables PHP aux marqueurs de positionnement : les variables liées passent leurs valeurs en entrée et reçoivent les valeurs de sortie, s'il y en a, de leurs marqueurs de positionnement respectifs
ou passer un tableau de valeurs de paramètres, uniquement en entrée
Liste de paramètres
-
input_parameters
-
Un tableau de valeurs avec autant d'éléments qu'il y a de paramètres à associer dans la requête SQL qui sera exécutée. Toutes les valeurs sont traitées comme des constantes
PDO::PARAM_STR
.Vous ne pouvez associer plusieurs valeurs à un seul paramètre; par exemple, vous ne pouvez associer deux valeurs à un paramètre de nom dans une clause IN().
Vous ne pouvez associer plus de valeurs que spécifié ; s'il y a plus de clés dans
input_parameters
que dans le code SQL utilisé pour PDO::prepare(), alors la requête préparée échouera et une erreur sera levée.
Valeurs de retour
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
Historique
Version | Description |
---|---|
5.2.0 |
Les clés déclarées dans input_parameters doivent correspondre
à celles déclarées dans le SQL. Avant PHP 5.2.0, ceci était ignoré sans erreur.
|
Exemples
Exemple #1 Exécute une requête préparée avec des variables liées
<?php /* Exécute une requête préparée en liant des variables PHP */ $calories = 150; $couleur = 'rouge'; $sth = $dbh->prepare('SELECT nom, couleur, calories FROM fruit WHERE calories < :calories AND couleur = :couleur'); $sth->bindParam(':calories', $calories, PDO::PARAM_INT); $sth->bindParam(':couleur', $couleur, PDO::PARAM_STR, 12); $sth->execute(); ?>
Exemple #2 Exécute une requête préparée avec un tableau de valeurs (paramètres de nom)
<?php /* Exécute une requête préparée en passant un tableau de valeurs */ $calories = 150; $couleur = 'rouge'; $sth = $dbh->prepare('SELECT nom, couleur, calories FROM fruit WHERE calories < :calories AND couleur = :couleur'); $sth->execute(array(':calories' => $calories, ':couleur' => $couleur)); ?>
Exemple #3 Exécute une requête préparée avec un tableau de valeurs (marqueurs)
<?php /* Exécute une requête préparée en passant un tableau de valeurs */ $calories = 150; $colour = 'rouge'; $sth = $dbh->prepare('SELECT nom, couleur, calories FROM fruit WHERE calories < ? AND couleur = ?'); $sth->execute(array($calories, $couleur)); ?>
Exemple #4 Exécute une requête préparée avec un marqueur de positionnement
<?php /* Exécute une requête préparée en liant des variables PHP */ $calories = 150; $couleur = 'rouge'; $sth = $dbh->prepare('SELECT nom, couleur, calories FROM fruit WHERE calories < ? AND couleur = ?'); $sth->bindParam(1, $calories, PDO::PARAM_INT); $sth->bindParam(2, $couleur, PDO::PARAM_STR, 12); $sth->execute(); ?>
Exemple #5 Exécute une requête préparée en utilisant un tableau pour les clauses IN
<?php /* Exécute une commande préparée en utilisant un tableau de valeurs pour les clauses IN */ $params = array(1, 21, 63, 171); /* Crée une chaîne pour les marqueurs */ $place_holders = implode(',', array_fill(0, count($params), '?')); /* Ce morceau de code va préparer la requête avec assez de marqueurs pour chaque valeur du tableau $params. Les valeurs du tableau $params sont ensuite liées aux marqueurs de la requête préparée lorsque la requête est exécutée. Ce n'est pas la même chose que d'utiliser la méthode PDOStatement::bindParam() sachant qu'elle impose une référence vers les valeurs. La méthode PDOStatement::execute() ne fait que lier par la valeur. */ $sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)"); $sth->execute($params); ?>
Notes
Note:
Quelques drivers nécessitent de fermer le curseur avant d'exécuter la requête suivante.
Voir aussi
- PDO::prepare() - Prépare une requête à l'exécution et retourne un objet
- PDOStatement::bindParam() - Lie un paramètre à un nom de variable spécifique
- PDOStatement::fetch() - Récupère la ligne suivante d'un jeu de résultats PDO
- PDOStatement::fetchAll() - Retourne un tableau contenant toutes les lignes du jeu d'enregistrements
- PDOStatement::fetchColumn() - Retourne une colonne depuis la ligne suivante d'un jeu de résultats