PHP 5.6.0 released

pg_fetch_row

(PHP 4, PHP 5)

pg_fetch_rowLit une ligne dans un tableau

Description

array pg_fetch_row ( resource $result [, int $row ] )

pg_fetch_row() lit une ligne dans le résultat associé à l'index result.

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées en commençant à 0. Si l'argument est omis ou s'il vaut NULL, la ligne suivante est récupérée.

Valeurs de retour

Un tableau de type array, indexé de 0 en montant, avec chaque valeur représentée comme une chaîne (chaîne de caractères). Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Exemples

Exemple #1 Exemple avec pg_fetch_row()

<?php 

$conn 
pg_pconnect("dbname=publisher");
if (!
$conn) {
  echo 
"Une erreur est survenue.\n";
  exit;
}

$result pg_query($conn"SELECT auteur, email FROM auteurs");
if (!
$result) {
  echo 
"Une erreur est survenue.\n";
  exit;
}

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

Voir aussi

add a note add a note

User Contributed Notes 7 notes

up
1
pletiplot at seznam dot cz
8 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
4 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
post at zeller-johannes dot de
9 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
Matthew Wheeler
11 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
0
darw75 at swbell dot net
13 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
maxnamara at yahoo dot com
9 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
imantr at cbn dot net dot id
12 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