pg_fetch_array
(PHP 4, PHP 5, PHP 7, PHP 8)
pg_fetch_array — Liefert eine Zeile als Array
Beschreibung
pg_fetch_array() gibt ein Array zurück, das die gelesene Zeile (Tupel, Datensatz) enthält.
pg_fetch_array() ist eine erweiterte Version von pg_fetch_row(). Zusätzlich zur Speicherung der Daten in einem numerischen Array (mit den Feldindizes) speichert diese Funktion die Daten auch in einem assoziativen Array mit den Feldnamen als Indizes. In der Standardeinstellung wird ein Array mit beiden Indextypen zurückgegeben.
Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-
null
.
pg_fetch_array() ist NICHT wesentlich langsamer als pg_fetch_row() oder pg_fetch_assoc(), ist aber viel einfacher zu benutzen.
Parameter-Liste
-
result
-
Eine PgSql\Result-Instanz, die von pg_query(), pg_query_params() oder pg_execute() (unter anderen) zurückgegeben wurde.
-
row
-
Die Nummer der Zeile des Abfrageergebnisses, das abgerufen werden soll. Die Nummerierung beginnt bei 0. Fehlt dieser Parameter oder ist er
null
, so wird jeweils die nächste Zeile abgerufen. -
mode
-
Ein optionaler Parameter, der bestimmt, wie das zurückgegebene Array indiziert werden soll.
mode
ist eine Konstante, die einen der folgenden Werte annehmen kann:PGSQL_ASSOC
,PGSQL_NUM
undPGSQL_BOTH
. Wenn die Funktion mitPGSQL_NUM
aufgerufen wird, wird ein Array mit numerischen Indizes zurückgegeben, mitPGSQL_ASSOC
wird ein Array mit assoziatives Indizes zurückgegeben und mitPGSQL_BOTH
ein Array mit beiden Indizes.
Rückgabewerte
Ein Array, das entweder numerisch (bei 0 beginnend) oder
assoziativ indiziert ist, oder beides. Jeder Wert im Array
wird als String dargestellt. Nullwerte der Datenbank
(NULL
) werden als null
zurückgegeben.
Bei einem Fehler oder wenn der Parameter row
größer
als die Anzahl der Datensätze im Abfrageergebnis ist oder wenn kein
Datensatz mehr gelesen werden kann, wird false
zurückgegeben. Der
Versuch, das Ergebnis einer anderen als einer SELECT-Abfrage abzurufen,
gibt ebenfalls false
zurück.
Changelog
Version | Beschreibung |
---|---|
8.1.0 |
Der Parameter result erwartet nun eine PgSql\Result-Instanz;
vorher wurde eine Ressource erwartet.
|
Beispiele
Beispiel #1 pg_fetch_array()-Beispiel
<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "Konnte keine Verbindung aufbauen.\n";
exit;
}
$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
echo "Ein Fehler ist aufgetreten.\n";
exit;
}
$arr = pg_fetch_array($result, 0, PGSQL_NUM);
echo $arr[0] . " <- Zeile 1 Autor\n";
echo $arr[1] . " <- Zeile 1 E-mail\n";
// Der Parameter row ist optional. Stattdessen kann
// NULL übergeben werden. Aufeinanderfolgende Aufrufe von
// pg_fetch_array liefern jeweils den nächsten Datensatz.
$arr = pg_fetch_array($result, NULL, PGSQL_ASSOC);
echo $arr["author"] . " <- Zeile 2 Autor\n";
echo $arr["email"] . " <- Zeile 2 E-mail\n";
$arr = pg_fetch_array($result);
echo $arr["author"] . " <- Zeile 3 Autor\n";
echo $arr[1] . " <- Zeile 3 E-mail\n";
?>
Siehe auch
- pg_fetch_row() - Liefert einen Datensatz als numerisches Array
- pg_fetch_object() - Liefert einen Datensatz als Objekt
- pg_fetch_result() - Liefert Werte aus einer Ergebnisinstanz