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.