DB_common::autoExecute()

DB_common::autoExecute() --  Prépare et éxécute automatiquement les requêtes INSERT ou UPDATE basées sur les variables fournies

Synopsis

integer autoExecute (string $table, array $fields_values [, integer $mode = DB_AUTOQUERY_INSERT [, string $where = FALSE]])

Description

autoExecute() construit automatiquement une requête INSERT ou UPDATE.

Cette méthode construit des requêtes SQL en utilisant autoPrepare() et les exécutent en utilisant execute().

Paramètres

chaîne de caractères $table

nom de la table

array $fields_values

tableau associatif (clé => valeur), les clés sont les noms des champs et les valeurs sont les valeurs correspondantes à ces champs.

Les valeurs sont automatiquement échappées et quotées en accord avec les impératifs de la DBMS courante.

entier $mode

type de la requête à générer (DB_AUTOQUERY_INSERT ou DB_AUTOQUERY_UPDATE)

chaîne de caractères $where

une chaîne de caractères qui doit être utilisée dans la clause WHERE. Ceci est utilisé uniquement lorsque $mode vaut DB_AUTOQUERY_UPDATE. La chaîne est introduite directement dans la requête, donc, vous devez litéralement l'échapper et la quoter en accord avec les impératifs du DBMS courant.

Valeur retournée

entier - DB_OK en cas de succès ou un objet DB_Error en cas d'erreurs.

Valeurs renvoyées

Tableau 34-1. Valeurs PEAR_Error possibles

Code erreurMessage erreurRaisonSolution
DB_ERROR_NEED_MORE_DATA insufficient data supplied Votre tableau associatif, qui doit contenir les noms des champs et leurs valeurs, est vide. Vérifiez et corrigez votre tableau fields_values.
DB_ERROR_SYNTAX syntax error Vous utilisez un mode inconnu. Les modes disponibles sont uniquement DB_AUTOQUERY_INSERT pour les requêtes INSERT ou DB_AUTOQUERY_UPDATE pour les requêtes UPDATE.
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.

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.

Exemple

Voir aussi

<< Intro - Prepare & Execute >>, << Intro - autoPrepare & autoExecute >>, prepare(), execute(), executeMultiple() et autoPrepare().