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().

Parameter

string $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.

integer $mode

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

string $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.

Return value

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

Throws

Possible PEAR_Error values
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.

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

Utilisation de autoExecute() en mode insertion

<?php
// En supposant que vous avez un objet DB valide nomme $db...
$table_name 'user';

$fields_values = array(
    
'id'      => 1,
    
'name'    => 'Fabien',
    
'country' => 'France'
);

$res $db->autoExecute($table_name$fields_values,
                           
DB_AUTOQUERY_INSERT);

if (
PEAR::isError($res)) {
    die(
$res->getMessage());
}
?>

Utilisation de autoExecute() en mode de mise à jour

<?php
// En supposant que vous avez un objet DB valide nomme $db...
$table_name 'user';

$fields_values = array(
    
'country' => 'France',
);

$res $db->autoExecute($table_name$fields_values,
                        
DB_AUTOQUERY_UPDATE"country = 'Japan'");

if (
PEAR::isError($res)) {
    die(
$res->getMessage());
}
?>
Active ou non l'auto-commit (Previous) Prépare une requête INSERT ou UPDATE basée sur les variables fournies (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.