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