pg_fetch_row

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_fetch_rowLiefert einen Datensatz als numerisches Array

Beschreibung

pg_fetch_row(PgSql\Result $result, ?int $row = null, int $mode = PGSQL_NUM): array|false

pg_fetch_row() holt einen Datensatz der Ergebnismenge, die durch die result-Instanz bezeichnet wird.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP-Wert null.

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, die geholt werden soll. Die Nummerierung beginnt bei 0. Fehlt dieser Parameter oder ist er null, so wird jeweils die nächste Zeile geholt.

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 und PGSQL_BOTH. Wenn die Funktion mit PGSQL_NUM aufgerufen wird, wird ein Array mit numerischen Indizes zurückgegeben, mit PGSQL_ASSOC wird ein Array mit assoziatives Indizes zurückgegeben und mit PGSQL_BOTH ein Array mit beiden Indizes.

Rückgabewerte

Ein array, beginnend bei Index 0, bei dem jeder Wert als string dargestellt wird. Nullwerte der Datenbank (NULL) werden als null zurückgegeben.

Bei einem Fehler oder wenn der Parameter row größer als die Anzahl der Zeilen im Abfrageergebnis ist oder wenn kein Datensatz mehr gelesen werden kann, wird false zurückgegeben.

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_row()-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;
}

while (
$row = pg_fetch_row($result)) {
echo
"Autor: $row[0] E-mail: $row[1]";
echo
"<br />\n";
}

?>

Siehe auch

add a note add a note

User Contributed Notes 7 notes

up
4
post at zeller-johannes dot de
19 years ago
I wondered whether array values of PostgreSQL are converted to PHP arrays by this functions. This is not the case, they are stored in the returned array as a string in the form "{value1 delimiter value2 delimiter value3}" (See http://www.postgresql.org/docs/8.0/interactive/arrays.html#AEN5389).
up
3
pletiplot at seznam dot cz
18 years ago
Note, that when you retrieve some PG boolean value, you get 't' or 'f' characters which are not compatible with PHP bool.
up
0
eddie at eddiemonge dot com
15 years ago
pg_fetch_row is faster than pg_fetch_assoc when doing a query with * as the select parameter. Otherwise, with declared columns, the two are similar in speed.
up
0
darw75 at swbell dot net
23 years ago
a way to do this with 2 loops to insert data into a table...

$num = pg_numrows($result);
$col_num = pg_numfields($result);

for ($i=0; $i<$num; $i++) {
  $line  = pg_fetch_array($result, $i, PGSQL_ASSOC);
  print "\t<tr bgcolor=#dddddd>\n";
    for ($j=0; $j<$col_num; $j++){
    list($col_name, $col_value) =each($line);
    print "\t\t<TD ALIGN=RIGHT><FONT SIZE=1 FACE='Geneva'>$col_value</FONT></TD>\n";
    }
  echo "<br>";
  }
up
-1
Matthew Wheeler
21 years ago
Note that the internal row counter is incremented BEFORE the row is retrieved. This causes an off by one error if you try to do:

pg_result_seek($resid,0);
pg_fetch_row($resid);

you will get back the SECOND result not the FIRST.
up
-6
maxnamara at yahoo dot com
20 years ago
Get downlines, put them into arrays.

function get_downlines($my_code){
    global $link;

    $sql = "select user_id, name from tb_user where parentcode = $my_code";
    $res = pg_query($link,$sql);
    if(!$res){
        echo "Error: ".$sql;exit();
    }
    $num_fields = pg_num_fields($res);
    $info_rows = 0;

    $num_rows = pg_num_rows($res);
    while($arr = pg_fetch_row($res)){

           $info_offset  = 1;
         $info_columns  = 0;

        while ($info_offset <= $num_fields) {
                 $info_elements[$info_rows][$info_columns] = $arr[$info_columns];
                 $info_offset++; $info_columns++;
        }
        $info_rows++;           
    }
return $info_elements;
}
up
-10
imantr at cbn dot net dot id
22 years ago
I use the following code to assigning query result to an array.

while ($row = pg_fetch_row($result)) $newArray[] = $row[0];

print_r($newArray);
To Top