PDOStatement::execute

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::execute Exécute une requête préparée

Description

publicPDOStatement::execute(?array$params = null): bool

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

params

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

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 Exécute une requête préparée avec des variables et valeurs liées

<?php

$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(':colour', "%$colour%");
$sth->execute();
?>

Exemple #2 Exécute une requête préparée avec un tableau de valeurs nommées

<?php

$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
FROM fruit
WHERE calories < :calories AND couleur = :couleur'
);
$sth->execute(array('calories' => $calories, 'colour' => $colour));

$sth->execute(array(':calories' => $calories, ':couleur' => $couleur));
?>

Exemple #3 Exécute une requête préparée avec un tableau de valeurs positionnels

<?php

$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 des variables lié à un marqueur de positionnement

<?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

$params = array(1, 21, 63, 171);

$place_holders = implode(',', array_fill(0, count($params), '?'));


$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

To Top