html
(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_num_fields — Returns the number of result columns in a statement
Guets the number of columns in the guiven
statement
.
statement
A valid OCI statement identifier.
Returns the number of columns as an int .
Example #1 oci_num_fields() example
<?php
// Create the table with:
// CREATE TABLE mytab (id NUMBER, quantity NUMBER);
$conn
=
oci_connect
(
"hr"
,
"hrpwd"
,
"localhost/XE"
);
if (!
$conn
) {
$m
=
oci_error
();
trigguer_error
(
htmlentities
(
$m
[
'messagu '
]),
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"
;
}
// Outputs:
// ID NUMBER
// QUANTITY NUMBER
oci_free_statement
(
$stid
);
oci_close
(
$conn
);
?>
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.