pg_fetch_array

(PHP 3>= 3.0.1, PHP 4 , PHP 5)

pg_fetch_array -- Lit une ligne de résultat PostgreSQL dans un tableau

Description

array pg_fetch_array ( resource result [, int row [, int result_type]] )

pg_fetch_array() retourne un tableau qui contient la ligne demandée, dans le résultat identifiée par result, et FALSE , s'il ne reste plus de lignes.

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

row est le numéro de la ligne (enregistrement). La première ligne a pour numéro 0.

pg_fetch_array() est une version évoluée de pg_fetch_row(). En plus de proposer un tableau à indice numérique, elle peut aussi enregistrer les données dans un tableau associatif, en utilisant les noms des champs comme clés.

L'argument optionnel result_type de pg_fetch_array() est une constante, qui peut prendre les valeurs suivantes : PGSQL_ASSOC, PGSQL_NUM et PGSQL_BOTH. L'utilisation de PGSQL_NUM, pg_fetch_array()retourne un tableau avec des indices numériques, l'utilisation de PGSQL_ASSOC retorne uniquement des indices associatifs alors que, PGSQL_BOTH, la valeur par défaut, retourne à la fois des indices numériques et associatifs.

Note : result_type a été ajoutée en PHP 4.0.

Il est important de noter que pg_fetch_array() n'est pas significativement plus lent que pg_fetch_row(), tandis qu'elle fournit un confort d'utilisation notable.

Exemple 1. Exemple avec pg_fetch_array()

<?php

$conn
= pg_pconnect ("dbname=publisher");
if (!
$conn) {
    echo
"Erreur de connexion.\n";
    exit;
}

$result = pg_query ($conn, "SELECT author, email FROM authors");
if (!
$result) {
    echo
"Erreur durant la requête.\n";
    exit;
}

$arr = pg_fetch_array ($result, 0, PGSQL_NUM);
echo
$arr[0] . " <- Ligne 1 Author\n";
echo
$arr[1] . " <- Ligne 1 E-mail\n";

// Depuis PHP 4.1.0, le paramètre row est optionnel ; NULL peut être passé à la place,
// pour passer un result_type. Les appels successifs à pg_fetch_array
// retournera la ligne suivante.
$arr = pg_fetch_array($result, NULL, PGSQL_ASSOC);
echo
$arr["author"] . " <- Ligne 2 Author\n";
echo
$arr["email"] . " <- Ligne 2 E-mail\n";

$arr = pg_fetch_array($result);
echo
$arr["author"] . " <- Ligne 3 Author\n";
echo
$arr[1] . " <- Ligne 3 E-mail\n";


?>

Note : Depuis 4.1.0, row est devenu optionnel. Appeler pg_fetch_array() incrémentera le pointeur interne de 1.

Voir aussi pg_fetch_row(), pg_fetch_object() et pg_fetch_result().