PHP Handbuch
Zurück |  | Nach vorne

# pg_fetch_object

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

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 Nummer der Zeile, die geholt wird, 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 Version 4.1.0 ist der Parameter `row` optional.

> 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.

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); ?>`

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

> 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