void setFetchMode (
integer $fetchmode
,
string $object_class = stdClass
)
Configure le mode de récupération par défaut utilisé par les méthodes fetch*() et get*().
DB_FETCHMODE_ORDERED, DB_FETCHMODE_ASSOC ou DB_FETCHMODE_OBJECT.
Voir la section sur les exemples ci-dessous pour plus d'informations.
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.
void - rien n'est retourné en cas de succès ou un objet DB_Error en cas d'erreur.
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. |
This function can not be called statically.
DB_FETCHMODE_ORDERED (défaut)
Un tableau ordonné sera retourné. L'ordre est donné par le traitement de sélection.
<?php
// On suppose que $db est un objet DB valide...
$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
DB_FETCHMODE_ASSOC
Un tableau associatif sera retourné ; les noms des colonnes seront les clés du tableau.
<?php
// On suppose que $db est un objet DB valide...
$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
DB_FETCHMODE_OBJECT
Retourne un objet avec les noms de colonnes comme propriétés.
<?php
// On suppose que $db est un objet DB valide...
$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
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
// On suppose que $db est un objet DB valide...
$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
DB_FETCHMODE_OBJECT avec votre propre objet en PHP 4
<?php
// On suppose que $db est un objet DB valide...
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
DB_FETCHMODE_OBJECT avec votre propre objet en PHP 5
<?php
// On suppose que $db est un objet DB valide...
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