autoPrepare() construit automatiquement une requête INSERT ou UPDATE pour être utilisée par execute() ou executeMultiple().
nom de la table
tableau indéxé contenant les noms de champs
Faites attention à ce que les champs soient assignés à des emplacements ?, sinon, les données que vous passerez dans la fonction execute() seront automatiquement échappées et quotées en accord avec les impératifs du DBMS courant.
type de requête à exécuter (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 | Le tableau qui doit contenir les noms de champs est vide. | Vérifiez et corrigez votre tableau de noms de champs. |
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. |
Exemple 34-1. Utilisation de autoPrepare() en mode insertion
|
Exemple 34-2. Utilisation de autoPrepare() en mode de mise à jour
|
<< Intro - Prepare & Execute >>, << Intro - autoPrepare & autoExecute >>, prepare(), execute(), executeMultiple() et autoExecute().
Précédent | Sommaire | Suivant |
DB_common::autoExecute() | Niveau supérieur | DB_common::commit() |