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().
nom de la table
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.
type de la requête à générer (DB_AUTOQUERY_INSERT ou DB_AUTOQUERY_UPDATE)
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.
Tableau 34-1. Valeurs PEAR_Error possibles
Code erreur | Message erreur | Raison | Solution |
---|---|---|---|
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. |
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 34-1. Utilisation de autoExecute() en mode insertion
|
Exemple 34-2. Utilisation de autoExecute() en mode de mise à jour
|
<< Intro - Prepare & Execute >>, << Intro - autoPrepare & autoExecute >>, prepare(), execute(), executeMultiple() et autoPrepare().
Précédent | Sommaire | Suivant |
DB_common::autoCommit() | Niveau supérieur | DB_common::autoPrepare() |