PDOStatement::execute — exécute une instruction préparée (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool PDOStatement::execute ([ array $input_parameters ] )
Exécuter les instructions préparées. Si l'instruction préparée contient des marqueurs de paramètres, vous devez choisir l'une des options suivantes :
Appelez PDOStatement::bindParam() pour lier les variables PHP aux marqueurs de paramètres : le cas échéant, transmettez les valeurs d'entrée et obtenez les valeurs de sortie en associant des variables liées aux marqueurs de paramètres
ou transmettez un tableau comme valeurs de paramètres d'entrée uniquement
paramètres_d'entrée
Un tableau avec autant d'éléments que de paramètres liés à l'instruction SQL à exécuter. Toutes les valeurs sont traitées comme PDO::PARAM_STR.
Vous ne pouvez pas lier plusieurs valeurs à un seul paramètre ; par exemple, vous ne pouvez pas lier deux valeurs à un seul paramètre nommé dans une clause IN().
Les valeurs liées ne peuvent pas dépasser le nombre spécifié. S'il y a plus de noms de clés dans input_parameters que spécifié par le SQL préparé par PDO::prepare(), cette instruction échouera avec une erreur.
Renvoie VRAI en cas de succès ou FAUX en cas d'échec.
<?php/* Exécute une instruction préparée en liant les variables PHP*/$calories = 150;$colour = 'red';$sth = $dbh->prepare('SELECT nom, couleur, calories FROM fruit WHERE calories < :calories AND color = :colour');$sth->bindParam(':calories', $calories, PDO::PARAM_INT);$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);$sth->execute();?>
<?php/* Exécute une instruction préparée en passant un tableau contenant les valeurs insérées*/$calories = 150;$colour = 'red';$sth = $dbh->prepare('SELECT nom, couleur, calories FROM fruit WHERE calories < :calories AND color = :colour');$sth->execute(array(':calories' => $calories, ':colour' => $colour));?>
<?php/* Exécute une instruction préparée en passant un tableau de valeurs insérées*/$calories = 150;$colour = 'red';$sth = $dbh->prepare('SELECT nom, couleur, calories FROM fruit WHERE calories < ? AND color = ?');$sth->execute(array($calories, $colour));?>
<?php/* Exécute une instruction préparée en liant les variables PHP*/$calories = 150;$colour = 'red';$sth = $dbh->prepare('SELECT nom, couleur, calories FROM fruit WHERE calories < ? AND color = ?');$sth->bindParam(1, $calories, PDO::PARAM_INT);$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);$sth->execute();?>
<?php/* Exécuter une instruction préparée contenant une clause IN en utilisant les valeurs d'un tableau */$params = array(1, 21, 63, 171);/* Créer un espace réservé rempli du même nombre de paramètres String */$place_holders = implode(',', array_fill(0, count($params), '?'));/* pour $params Pour chaque valeur du tableau, l'instruction à préparer contient suffisamment d'espaces réservés sans nom. Lorsque l'instruction est exécutée, les valeurs du tableau $params sont liées aux espaces réservés dans l'instruction préparée. Ceci est différent de l'utilisation de PDOStatement::bindParam() car cela nécessite une variable de référence. PDOStatement::execute() agit uniquement comme une alternative à la liaison par valeur. */$sth = $dbh->prepare("SELECT id, nom FROM contacts WHERE id IN ($place_holders)");$sth->execute($params);?>