integer executeMultiple (
resource $stmt
,
array $data
)
Passe automatiquement les informations contenues dans $data (un tableau multi-dimentionnel) à execute(), qui exécute la requête soumise à prepare().
identifiant de ressource de requête retourné par prepare()
un tableau numérique contenant les données à insérer dans la requête
Code erreur | Message erreur | Raison | Solution |
---|---|---|---|
DB_ERROR_INVALID | invalid | la ressource de la requête SQL n'est pas valide. | Vérifiez que la requête fonctionne bien avec prepare(). Notez que executeMultiple() 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 est égal au nombre d'entrées passées par $params . |
DB_ERROR_NODBSELECTED | no database selected | Aucune base de données n'a été sélectionnée. | Vérifiez le DSN dans connect(). |
tout autre code erreur | Erreur spécifique à la base de données. | 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. |
This function can not be called statically.
Si une erreur se produit durant l'exécution, la fonction s'arrêtera. Il se peut qu'il reste alors des données non traitées.
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 devant être exécutées au moment de l'exécution doivent être mises dans une requête préparée.
Exemple avec executeMultiple()
<?php
// On suppose que $db est un objet DB valide...
$sth = $db->prepare('INSERT INTO numbers VALUES (?, ?, ?)');
if (PEAR::isError($sth)) {
die($sth->getMessage());
}
$alldata = array(array(1, 'one', 'en'),
array(2, 'two', 'to'),
array(3, 'three', 'tre'),
array(4, 'four', 'fire'));
$res =& $db->executeMultiple($sth, $alldata);
if (PEAR::isError($res)) {
die($res->getMessage());
}
?>