DB_common::autoPrepare()

DB_common::autoPrepare() – Prépare une requête INSERT ou UPDATE basée sur les variables fournies

Synopsis

resource autoPrepare ( string $table , array $table_fields , integer $mode = = DB_AUTOQUERY_INSERT , string $where = = false )

Description

autoPrepare() construit automatiquement une requête INSERT ou UPDATE pour être utilisée par execute() ou executeMultiple().

Parameter

string $table

nom de la table

array $table_fields

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.

integer $mode

type de requête à exécuter (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

resource - ressource utilisée pour la requête ou un objet DB_Error en cas d'échec.

Throws

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

Note

This function can not be called statically.

Example

Utilisation de autoPrepare() en mode insertion

<?php
// En supposant que vous avez un objet DB valide nomme $db...
$table_name   'user';
$table_fields = array('name''country');
$table_values = array('Zoe''France');

$sth $db->autoPrepare($table_name$table_fields,
                        
DB_AUTOQUERY_INSERT);

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

$res =& $db->execute($sth$table_values);

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

Utilisation de autoPrepare() en mode de mise à jour

<?php
// En supposant que vous avez un objet DB valide nomme $db...
$table_name   'user';
$table_fields = array('name''country');
$table_values = array('Bob''USA');

$sth $db->autoPrepare($table_name$table_fields,
                        
DB_AUTOQUERY_UPDATE"country = 'Japan'");

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

$res =& $db->execute($sth$table_values);

if (
PEAR::isError($res)) {
    die(
$res->getMessage());
}
?>
Prépare et éxécute automatiquement les requêtes INSERT ou UPDATE basées sur les variables fournies (Previous) Valide la transaction courante (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.