PHP Handbuch
Zurück |  | Nach vorne

# pg_fetch_object

(PHP 3>= 3.0.1, PHP 4 )

pg_fetch_object -- Holt einen Datensatz als Objekt

## Beschreibung

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

pg_fetch_object() gibt ein Objekt zurück, dessen Eigenschaften mit den Feldern des erhaltenen Datensatzes übereinstimmen oder `FALSE`, wenn kein Datensatz mehr gelesen werden konnte oder ein Fehler auftrat.

pg_fetch_object() ist pg_fetch_array() ähnlich, mit einem Unterschied: Statt eines Arrays wird ein Objekt zurückgegeben. Indirekt heisst das, dass man die Daten nur über die Feldnamen und nicht über ihre Offsets ansprechen kann (Zahlen sind nicht erlaubte Eigenschaftsnamen).

`row` ist die Zeilennummer, die Nummerierung beginnt bei 0.

Von der Geschwindigkeit her ist die Funktion mit pg_fetch_array() identisch und fast so schnell wie pg_fetch_row() (Der Unterschied ist unwesentlich).

> Anmerkung: Ab der PHP-Version 4.3.0 ist die Standardeinstellung von `result_type` PGSQL_ASSOC, während PGSQL_BOTH in älteren Versionen voreingestellt ist. Da nummerische Eigenschaftsnamen von Objekten nicht erlaubt sind, ist PGSQL_BOTH überflüssig.

> `result_type` wird möglicherweise in zukünftigen Versionen gelöscht werden.

Siehe auch pg_query(), pg_fetch_array(), pg_fetch_row() und pg_fetch_result().

Beispiel 1. PostgreSQL fetch object

    <?php
    $database = "verlag";
    $db_conn = pg_connect ("host=localhost port=5432 dbname=$database");
    if (!$db_conn): ?>
        <H1>Konnte keine Verbindung zur PostgreSQL Datenbank <?php echo $database; ?> herstellen.</H1> <?php
        exit;
    endif;

    $qu = pg_query ($db_conn, "SELECT * FROM verlag ORDER BY autor");
    $row = 0; // PostgreSQL braucht einen Zähler, andere DBs evtl. nicht
    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",  "  Jahr");
    $fields[] = Array ("titel", " Titel");

    $row= 0; // PostgreSQL braucht einen Zähler, andere DBs evtl. nicht
    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);
    ?>

> Anmerkung: Ab der Version 4.1.0 ist der Parameter `row` optional. Ein Aufruf von pg_fetch_object() inkrementiert den internen Datensatzzähler um 1.

Zurück | Zum Anfang | Nach vorne
pg_fetch_assoc | Nach oben | pg_fetch_result