tableau, chaîne de caractères ou donnée numérique contenant
les données à insérer dans la requête.
Le nombre d'éléments passées doit correspondre au nombre de marqueurs
de la requête préparée : 1 marqueur par paramètres (sauf tableau) ou
1 marqueur par élément de tableau.
Valeur retournée
mixed - un nouvel objet DB_result pour les requêtes
qui retournent des résultats (comme les requêtes
SELECT),
DB_OK pour les requêtes qui manipulent des données
(comme les requêtes INSERT)
ou un objet DB_Error en cas d'échec.
Vérifiez que la requête fonctionne bien avec
prepare(). Notez que
execute() requière une ressource de requête
retournée par prepare(), et non pas la requête
elle-même.
DB_ERROR_MISMATCH
mismatch
Pas assez de données pour préparer la requête SQL.
Vérifiez que le nombre de marqueurs dans la requête
prepare() passée à
$query correspond au nombre d'entrées passées à
$params.
Vérifiez la section spécifique à la base de données dans le
manuel PHP
pour trouver la raison de cette erreur. Dans la plupart des cas, il
s'agit d'une requête mal formée, comme l'utilisation de LIMIT dans
une requête envoyée à une base de données Oracle.
Note
Cette fonction ne peut pas être appelée de façon statique.
Avertissement
La valeur passée au paramètre $data
doit être litéral.
Ne soumettez pas des fonctions SQL (par exemple, CURDATE()).
Les fonctions SQL qui doivent être exécutées au moment de l'exécution doivent
être mises dans une requête préparée.
<?php
// On suppose que $db est un objet DB valide...
$sth = $db->prepare('INSERT INTO numbers (number) VALUES (?)');
if (PEAR::isError($sth)) {
die($sth->getMessage());
}
$res =& $db->execute($sth, 1);
if (PEAR::isError($res)) {
die($res->getMessage());
}
?>
<?php
// On suppose que $db est un objet DB valide...
$sth = $db->prepare('INSERT INTO numbers VALUES (?, ?, ?)');
$data = array(1, 'one', 'en');
$db->execute($sth, $data);
?>