PHP 8.1.0 RC 4 available for testing


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

pg_fetch_rowLit une ligne dans un tableau


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

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


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


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.


Exemple #1 Exemple avec pg_fetch_row()


if (!
$conn) {
"Une erreur est survenue.\n";

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

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

Voir aussi

add a note add a note

User Contributed Notes 7 notes

pletiplot at seznam dot cz
15 years ago
Note, that when you retrieve some PG boolean value, you get 't' or 'f' characters which are not compatible with PHP bool.
post at zeller-johannes dot de
16 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
eddie at eddiemonge dot com
12 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.
darw75 at swbell dot net
20 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>";
Matthew Wheeler
18 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:


you will get back the SECOND result not the FIRST.
maxnamara at yahoo dot com
17 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);
        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++;
return $info_elements;
imantr at cbn dot net dot id
19 years ago
I use the following code to assigning query result to an array.

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

To Top