pg_fetch_object

(PHP 3>= 3.0.1, PHP 4 , PHP 5)

pg_fetch_object -- Lit une ligne de résultat PostgreSQL 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, s'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).

Note : Cette fonction définie les champs NULL à la valeur PHP NULL.

row est le numéro de la ligne (enregistrement). Le numéro de la première ligne vaut 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).

Note : Depuis PHP 4.3.0, result_type vaut par défaut PGSQL_ASSOC tandis que pour les versions plus récentes, PGSQL_BOTH était la valeur par défaut. Il n'y a aucune utilité pour les propriétés numériques, depuis que celles-ci sont invalides en PHP.

result_type sera sûrement supprimé dans les prochaines version.

Exemple 1. Exemple avec pg_fetch_object()

<?php

$database
= 'store';

$db_conn = pg_connect("host=localhost port=5432 dbname=$database");
if (!
$db_conn) {
    echo
"La connexion a la base $database a échouée\n";
    exit;
}

$qu = pg_query($db_conn, "SELECT * FROM books ORDER BY author");

$row = 0; // postgres a besoin d'un compteur

while ($data = pg_fetch_object($qu, $row)) {
    echo
$data->author . " (";
    echo
$data->year . "): ";
    echo
$data->title . "<br />";
    
$row++;
}

pg_free_result($qu);
pg_close($db_conn);

?>

Note : Depuis 4.1.0, row est devenu optionnel. Appeler pg_fetch_array() incrémentera le compteur de lignes interne de 1.

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