PHP Handbuch
Zurück |  | Weiter

# 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 | Weiter
pg_fetch_assoc | Nach oben | pg_fetch_result