PHP Unconference Europe 2015

oci_num_fields

(PHP 5, PECL OCI8 >= 1.1.0)

oci_num_fieldsRetourne le nombre de colonnes dans un résultat Oracle

Description

int oci_num_fields ( resource $statement )

Retourne le nombre de colonnes dans le résultat Oracle statement.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

Valeurs de retour

Retourne le nombre de colonnes, sous la forme d'un entier, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_num_fields()

<?php

// Création de la table avec :
//   CREATE TABLE mytab (id NUMBER, quantity NUMBER);

$conn oci_connect("hr""hrpwd""localhost/XE");
if (!
$conn) {
    
$m oci_error();
    
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid oci_parse($conn"SELECT * FROM mytab");
oci_execute($stidOCI_DESCRIBE_ONLY); // Utilisation de OCI_DESCRIBE_ONLY si aucune ligne n'est récupérée

$ncols oci_num_fields($stid);
for (
$i 1$i <= $ncols$i++) {
    echo 
oci_field_name($stid$i) . " " oci_field_type($stid$i) . "<br>\n";
}

// Affiche :
//    ID NUMBER
//    QUANTITY NUMBER

oci_free_statement($stid);
oci_close($conn);

?>

Notes

Note:

Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinumcols(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_num_fields(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

add a note add a note

User Contributed Notes 1 note

up
0
jnield at impole dot com
14 years ago
The following is not immediately obvious:

If you need the number of columns in a REF CURSOR returned from a PL/SQL procedure, you need to use OCINumColumns() on the cursor handle returned by OCINewCursor after it is bound and executed, not the statement handle. Same applies for OCIColumnName() and friends.
To Top