PDOStatement::execute
(PHP 5 >= 5.1.0, PHP 7, 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 :
PDOStatement::bindParam() et/ou PDOStatement::bindValue() doit être appelé pour lier des variables ou des valeurs (respectivement) aux marqueurs de paramètres. 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
.Les valeurs multiples ne peuvent pas être liées à un seul paramètre; par exemple, il n'est pas autorisé de lier deux valeurs à un seul paramètre nommé dans une clause IN().
La liaison de plus de valeurs que spécifié n'est pas possible ; 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.
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 et valeurs liées
<?php
/* Exécute une requête préparée en liant des variables et valeurs */
$calories = 150;
$couleur = 'ver';
$sth = $dbh->prepare('SELECT nom, couleur, calories
FROM fruit
WHERE calories < :calories AND couleur LIKE :couleur');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':couleur', "%{$couleur}%");
$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);
?>
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
Version en cache
21/11/2024 20:36:29 Cette version de la page est en cache (à la date du 21/11/2024 20:36:29) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-pdostatement.execute.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.