ScotlandPHP 2016

pg_fetch_row

(PHP 4, PHP 5)

pg_fetch_rowPobiera wiersz jako tablicę z indeksami numerycznymi

Opis

array pg_fetch_row ( resource $wynik , int $wiersz )

pg_fetch_row() pobiera jeden wiersz z wyniku wskazanego przez określony identyfikator wyniku wynik.

Informacja: Ta funkcja ustala wartość pól NULL na NULL.

Parametry

wynik

Identyfikator wyniku zapytania bazy PostgreSQL, zwrócony przez jedną z funkcji pg_query(), pg_query_params() lub pg_execute() (między innymi).

wiersz

Numer wiersza w wyniku do pobrania. Wiersze numerowane są od zera w górę. Jeśli jest pominięty albo wynosi NULL, pobrany zostanie kolejny wiersz.

Zwracane wartości

Tablica (ang. array), indeksowana od zera w górę, z reprezentowaną każdą wartością jako łańcuch (ang. string). Wartości NULL z bazy danych są zwracane jako NULL.

FALSE jest zwracane, jeśli wiersz przekracza liczbę wszystkich wierszy, nie ma więcej wierszy, lub w przypadku każdego innego błędu.

Rejestr zmian

Wersja Opis
4.1.0 Parametr wiersz stał się opcjonalny.

Przykłady

Przykład #1 pg_fetch_row() - przykład

<?php 

$polaczenie 
pg_pconnect("dbname=wydawca");
if (!
$polaczenie) {
  echo 
"Wystąpił błąd.\n";
  exit;
}

$wynik pg_query($polaczenie"SELECT autor, email FROM autorzy");
if (!
$wynik) {
  echo 
"Wystąpił błąd.\n";
  exit;
}

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

Zobacz też:

add a note add a note

User Contributed Notes 7 notes

up
0
eddie at eddiemonge dot com
6 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
pletiplot at seznam dot cz
10 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
post at zeller-johannes dot de
11 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
0
darw75 at swbell dot net
15 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
-2
maxnamara at yahoo dot com
11 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
-2
Matthew Wheeler
13 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
-5
imantr at cbn dot net dot id
14 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