oci_num_fields

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_num_fieldsDevuelve el número de columnas del resultado de una sentencia

Descripción

oci_num_fields(resource $statement): int

Obtiene el número de columnas de la sentencia dada por statement.

Parámetros

statement

Un identificador de sentencia de OCI válido.

Valores devueltos

Devuelve el número de columnas como un entero, o false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo de oci_num_fields()

<?php

// Crear la tabla con:
// 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($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows

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

// Salidas:
// ID NUMBER
// QUANTITY NUMBER

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

?>

Notas

Nota:

En versiones de PHP anteriores a la 5.0.0 se debe usar ocinumcols() en su lugar. Este nombre aún puede usarse; se dejó como alias de oci_num_fields() por razones de retrocompatibilidad. Sin embargo, este nombre es obsoleto y no se recomienda.

add a note add a note

User Contributed Notes 1 note

up
0
jnield at impole dot com
25 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