25 pers. connectées au site
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.
- <?php
- $db->setFetchMode(DB_FETCHMODE_ORDERED);
-
- $res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
- $row =& $res->fetchRow();
-
- print_r($row);
- echo 'La colonne a vaut ' . $row[0];
-
- ?>
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.
- <?php
- $db->setFetchMode(DB_FETCHMODE_ASSOC);
-
- $res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
- $row =& $res->fetchRow();
-
- print_r($row);
- echo 'La colonne a vaut ' . $row['a'];
-
- ?>
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.
- <?php
- $db->setFetchMode(DB_FETCHMODE_OBJECT);
-
- $res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
- $row =& $res->fetchRow();
-
- print_r($row);
- echo 'La colonne a vaut ' . $row->a;
-
- ?>
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é.
- <?php
- $db->setFetchMode(DB_FETCHMODE_OBJECT, 'DB_row');
-
- $res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
- $row =& $res->fetchRow();
-
- print_r($row);
- echo 'La colonne a vaut ' . $row->a;
-
- ?>
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
- <?php
-
- class SomeResult {
- function SomeResult($data) {
- foreach ($data as $key => $value) {
- $this->$key = $data[$key];
- }
- }
- }
-
- $db->setFetchMode(DB_FETCHMODE_OBJECT, 'SomeResult');
-
- $res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
- $row =& $res->fetchRow();
-
- print_r($row);
- echo 'La colonne a vaut ' . $row->a;
-
- ?>
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
- <?php
-
- class SomeResult {
- public $row_data;
- function __construct($data) {
- $this->row_data = $data;
- }
- function __get($variable) {
- return $this->row_data[$variable];
- }
- }
-
- $db->setFetchMode(DB_FETCHMODE_OBJECT, 'SomeResult');
-
- $res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
- $row =& $res->fetchRow();
-
- print_r($row);
- echo 'La colonne a vaut ' . $row->a;
-
- ?>
Affichera :
SomeResult Object
(
[a] => 28
[b] => hi
)
La colonne a vaut 28
|
|
Remonter