Manuel Pear

DB_common::setFetchMode()

DB_common::setFetchMode() -- Configure le mode de récupération par défaut

Synopsis

void setFetchMode (integer $fetchmode [, string $object_class = stdClass])

Description

Configure le mode de récupération par défaut utilisé par les méthodes fetch*() et get*().

Paramètres

entier $fetchmode

DB_FETCHMODE_ORDERED, DB_FETCHMODE_ASSOC ou DB_FETCHMODE_OBJECT.

Voir la section sur les exemples ci-dessous pour plus d'informations.

chaîne de caractères $object_class

Ce paramètre est à utiliser lorsque $fetchmode est défini à DB_FETCHMODE_OBJECT.

Vous pouvez définir ce paramètre à DB_row, ce qui fera que les données résultantes seront placées dans une nouvelle instante de l'objet DB_row.

Valeur retournée

void - rien n'est retourné en cas de succès ou un objet DB_Error en cas d'erreur.

Valeurs renvoyées

Tableau 39-1. Valeurs PEAR_Error possibles

Code erreur Message erreur Raison Solution
NULL invalid fetchmode mode Le mode de récupération donné n'existe pas ou n'est pas implémenté dans votre version de DB. Vérifier l'ortographe de l'argument et votre version de DB.

Note

Cette fonction ne peut pas être appelée de façon statique.

Exemple

Exemple 39-1. DB_FETCHMODE_ORDERED (défaut)

Un tableau ordonné sera retourné. L'ordre est donné par le traitement de sélection.

  1. <?php
  2. // On suppose que $db est un objet DB valide...
  3. $db->setFetchMode(DB_FETCHMODE_ORDERED);  
  4.  
  5. $res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');  
  6. $row =& $res->fetchRow();  
  7.  
  8. print_r($row);  
  9. echo 'La colonne a vaut ' . $row[0];  
  10.  
  11. ?> 

Affichera :

Array
(
    [0] => 28
    [1] => hi
)
La colonne a vaut 28

Exemple 39-2. DB_FETCHMODE_ASSOC

Un tableau associatif sera retourné ; les noms des colonnes seront les clés du tableau.

  1. <?php
  2. // On suppose que $db est un objet DB valide...
  3. $db->setFetchMode(DB_FETCHMODE_ASSOC);  
  4.  
  5. $res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');  
  6. $row =& $res->fetchRow();  
  7.  
  8. print_r($row);  
  9. echo 'La colonne a vaut ' . $row['a'];  
  10.  
  11. ?> 

Affichera :

Array
(
    [a] => 28
    [b] => hi
)
La colonne a vaut 28

Exemple 39-3. DB_FETCHMODE_OBJECT

Retourne un objet avec les noms de colonnes comme propriétés.

  1. <?php
  2. // On suppose que $db est un objet DB valide...
  3. $db->setFetchMode(DB_FETCHMODE_OBJECT);  
  4.  
  5. $res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');  
  6. $row =& $res->fetchRow();  
  7.  
  8. print_r($row);  
  9. echo 'La colonne a vaut ' . $row->a;  
  10.  
  11. ?> 

Affichera :

stdClass Object
(
    [a] => 28
    [b] => hi
)
La colonne a vaut 28

Exemple 39-4. DB_FETCHMODE_OBJECT et DB_row

Si le paramètre optionnel $object_class de la méthode setFetchMode() est défini à DB_row, un objet DB_row est retourné.

  1. <?php
  2. // On suppose que $db est un objet DB valide...
  3. $db->setFetchMode(DB_FETCHMODE_OBJECT, 'DB_row');  
  4.  
  5. $res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');  
  6. $row =& $res->fetchRow();  
  7.  
  8. print_r($row);  
  9. echo 'La colonne a vaut ' . $row->a;  
  10.  
  11. ?> 

Affichera :

db_row Object
(
    [a] => 28
    [b] => hi
)
La colonne a vaut 28

Exemple 39-5. DB_FETCHMODE_OBJECT avec votre propre objet en PHP 4

  1. <?php
  2. // On suppose que $db est un objet DB valide...
  3.  
  4. class SomeResult { 
  5.    function SomeResult($data) { 
  6.       foreach ($data as $key => $value) { 
  7.          $this->$key = $data[$key]; 
  8.       } 
  9.    }  
  10. }  
  11.  
  12. $db->setFetchMode(DB_FETCHMODE_OBJECT, 'SomeResult');  
  13.  
  14. $res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');  
  15. $row =& $res->fetchRow();  
  16.  
  17. print_r($row);  
  18. echo 'La colonne a vaut ' . $row->a;  
  19.  
  20. ?> 

Affichera :

SomeResult Object
(
    [a] => 28
    [b] => hi
)
La colonne a vaut 28

Exemple 39-6. DB_FETCHMODE_OBJECT avec votre propre objet en PHP 5

  1. <?php
  2. // On suppose que $db est un objet DB valide...
  3.  
  4. class SomeResult { 
  5.    public $row_data; 
  6.    function __construct($data) { 
  7.       $this->row_data = $data; 
  8.    } 
  9.    function __get($variable) { 
  10.       return $this->row_data[$variable]; 
  11.    }  
  12. }  
  13.  
  14. $db->setFetchMode(DB_FETCHMODE_OBJECT, 'SomeResult');  
  15.  
  16. $res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');  
  17. $row =& $res->fetchRow();  
  18.  
  19. print_r($row);  
  20. echo 'La colonne a vaut ' . $row->a;  
  21.  
  22. ?> 

Affichera :

SomeResult Object
(
    [a] => 28
    [b] => hi
)
La colonne a vaut 28

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique