oci_fetch_array

(PHP 5)

oci_fetch_array -- Lit une ligne d'un résultat Oracle sous forme de tableau

Description

array oci_fetch_array ( resource statement [, int mode] )

oci_fetch_array() retourne un tableau qui correspond à la prochaine ligne disponible dans le résultat statement, ou bien FALSE en cas d'erreur.

oci_fetch_array() retourne un tableau, indexé numériquement et avec les noms des colonnes.

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

Le paramètre optionnel mode peut être la combinaison des constantes suivantes :

OCI_BOTH - retourne une tableau, indexé numériquement et avec les noms de colonnes. Identique à OCI_ASSOC + OCI_NUM). C'est le comportement par défaut.
OCI_ASSOC - retourne un tableau associatif. C'est le même comportement que celui de la fonction oci_fetch_assoc().
OCI_NUM - retourne un tableau indexé numériquement, C'est le même comportement que celui de la fonction oci_fetch_row().
OCI_RETURN_NULLS - Crée des éléments vides pour les valeurs NULL.
OCI_RETURN_LOBS - Retourne la valeur du LOB.

La configuration par défaut de mode est OCI_BOTH.

Il faut mentionner ici que oci_fetch_array() n'est pas significativement plus lente que oci_fetch_row(), mais bien plus pratique.

Note : N'oubliez pas que Oracle retourne tous les noms de champs en majuscules, et les noms des index du tableau résultant seront donc aussi en majuscules.

Exemple 1. Exemple avec oci_fetch_array() et OCI_BOTH

<?php
$connection
= oci_connect("apelsin", "kanistra");

$query = "SELECT id, name FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while (
$row = oci_fetch_array ($statement, OCI_BOTH)) {
    echo
$row[0] . ' et ' . $row['ID'] . ' sont identiques<br />';
    echo
$row[1] . ' et ' . $row['NAME'] . ' sont identiques<br />';
}
?>

Exemple 2. Exemple avec oci_fetch_array() et OCI_NUM

<?php
$connection
= oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while (
$row = oci_fetch_array ($statement, OCI_NUM)) {
    echo
$row[0] . '<br />';
    echo
$row[1] . '<br />';
    echo
$row[2]->read(100) . '<br />';  //Affiche les 100 premiers bytes du LOB
}
?>

Exemple 3. Exemple avec oci_fetch_array() et OCI_ASSOC

<?php
$connection
= oci_connect("user", "password");

$query = 'SELECT id, name, lob_field FROM fruits';

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while (
$row = oci_fetch_array ($statement, OCI_NUM)) {
    echo
$row['ID'] . '<br />';
    echo
$row['NAME'] . '<br />';
    echo
$row['LOB_FIELD'] . '<br />';  //Affiche "Object id #1"
}
?>

Exemple 4. Exemple avec oci_fetch_array() et OCI_RETURN_LOBS

<?php
$connection
= oci_connect("user", "password");

$query = 'SELECT id, name, lob_field FROM fruits';

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while (
$row = oci_fetch_array ($statement, OCI_NUM)) {
    echo
$row[0] . '<br />';
    echo
$row[1] . '<br />';
    echo
$row['LOB_FIELD'] . '<br />';  //Affiche le contenu du LOB
}
?>

Voir aussi oci_fetch_assoc(), oci_fetch_object(), oci_fetch_row() et oci_fetch_all().