DB_common::execute()

DB_common::execute() – Exécute une requête SQL préparée

Synopsis

mixed &execute ( resource $stmt , mixed $data = array() )

Description

execute() remplis la requête SQL préparée par prepare() avec les données fournies par $data puis exécute la requête.

Parameter

resource $stmt

ressource de requête retournée par prepare()

mixed $data

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.

Return value

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.

Throws

Possible PEAR_Error values
Code erreur Message erreur Raison Solution
DB_ERROR_INVALID invalid la ressource de requête SQL n'est pas valide 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 .
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.

Note

This function can not be called statically.

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.

Example

Exemple en passant un scalaire à execute()

<?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($sth1);
if (
PEAR::isError($res)) {
    die(
$res->getMessage());
}
?>

Exemple en passant un tableau à execute()

<?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);
?>
Protège une chaîne en accord avec les standards du gestionnaire utilisé (Previous) Exécute une requête préparée SQL pour chaque élément d'un tableau (Next)
Last updated: Sun, 29 Aug 2010 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.