pg_fetch_object

(PHP 3>= 3.0.1, PHP 4 )

pg_fetch_object -- Lit une ligne de résultat PGSQL dans un objet

Description

object pg_fetch_object ( resource result [, int row [, int result_type]])

pg_fetch_object() retourne un objet dont les membres sont les champs de la ligne demandée, ou FALSE , si il n'y a plus de lignes.

pg_fetch_object() est similaire à pg_fetch_array(), avec une différence majeure : c'est un objet qui est retourné, au lieu d'un tableau. Par conséquent, cela signifie que vous ne pouvez accéder aux membres qu'avec leur nom, et non plus leur offset (les nombres ne sont pas autorisés comme nom de membre).

L'argument optionnel result_type de result_type est une constante qui peut prendre les valeurs suivantes : PGSQL_ASSOC, PGSQL_NUM et PGSQL_BOTH.

Note : result_type a été ajouté dans PHP 4.0.

Au niveau vitesse, pg_fetch_object() est aussi rapide que pg_fetch_row() et presque aussi rapide que pg_fetch_row() (la différence est non significative).

Exemple 1. Lecture d'un objet Postgres

<?php
$database
= "verlag";
$db_conn = pg_connect ("host=localhost port=5432 dbname=$database");
if (!
$db_conn): ?>
    <H1>Impossible de se connecter &agrave; la base PostgreSQL<?php echo $database ?></H1> <?php
    
exit;
endif;

$qu = pg_query ($db_conn, "SELECT * FROM verlag ORDER BY autor");
$row = 0; // PostgreSQL requiert un compteur de ligne que d'autres n'ont pas

while ($data = pg_fetch_object ($qu, $row)) {
    echo
$data->autor." (";
    echo
$data->jahr ."): ";
    echo
$data->titel."<BR>";
    
$row++;
}
?>
<PRE>
<?php
$fields
[] = Array ("autor", "Author");
$fields[] = Array ("jahr",  "  Year");
$fields[] = Array ("titel", " Title");

$row= 0; // PostgreSQL requiert un compteur de ligne que d'autres n'ont pas
while ($data = pg_fetch_object ($qu, $row)) {
    echo
"----------\n";
    
reset ($fields);
    while (list (,
$item) = each ($fields)):
        echo
$item[1].": ".$data->$item[0]."\n";
    endwhile;
    
$row++;
}
echo
"----------\n";
?>
</PRE>
<?php
pg_free_result
($qu);
pg_close ($db_conn);
?>

Note : Depuis 4.1.0, row est devenu optionnel. Appeler pg_fetch_array() avec incrémenter le pointeur interne de 1.

Voir aussi pg_query(), pg_fetch_array(), pg_fetch_assoc(), pg_fetch_row() et pg_fetch_result().