Returns an object containing the next result-set row of a query. Each attribute of the object corresponds to a column of the row. This function is typically called in a loop until it returns FALSE
, indicating no more rows exist.
For details on the data type mapping performed by the OCI8 extension, see the datatypes supported by the driver
A valid OCI8 statement identifier created by oci_parse() and executed by oci_execute(), or a REF CURSOR statement identifier.
Returns an object. Each attribute of the object corresponds to a column of the row. If there are no more rows in the statement
then FALSE
is returned.
Any LOB columns are returned as LOB descriptors.
DATE columns are returned as strings formatted to the current date format. The default format can be changed with Oracle environment variables such as NLS_LANG or by a previously executed ALTER SESSION SET NLS_DATE_FORMAT command.
Oracle's default, non-case sensitive column names will have uppercase attribute names. Case-sensitive column names will have attribute names using the exact column case. Use var_dump() on the result object to verify the appropriate case for attribute access.
Attribute values will be NULL
for any NULL data fields.
<?php /* Before running, create the table: CREATE TABLE mytab (id NUMBER, description VARCHAR2(30)); INSERT INTO mytab (id, description) values (1, 'Fish and Chips'); COMMIT; */ $conn = oci_connect('hr', 'welcome', 'localhost/XE'); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } $stid = oci_parse($conn, 'SELECT id, description FROM mytab'); oci_execute($stid); while (($row = oci_fetch_object($stid)) != false) { // Use upper case attribute names for each standard Oracle column echo $row->ID . "<br>\n"; echo $row->DESCRIPTION . "<br>\n"; } // Output is: // 1 // Fish and Chips oci_free_statement($stid); oci_close($conn); ?>
<?php /* Before running, create the table with a case sensitive column name: CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30)); INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee'); COMMIT; */ $conn = oci_connect('hr', 'welcome', 'localhost/XE'); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } $stid = oci_parse($conn, 'SELECT id, "MyDescription" FROM mytab'); oci_execute($stid); while (($row = oci_fetch_object($stid)) != false) { // Use upper case attribute names for each standard Oracle column echo $row->ID . "<br>\n"; // Use the exact case for the case sensitive column name echo $row->MyDescription . "<br>\n"; } // Output is: // 1 // Iced Coffee oci_free_statement($stid); oci_close($conn); ?>
<?php /* Before running, create the table: CREATE TABLE mytab (id NUMBER, description CLOB); INSERT INTO mytab (id, description) values (1, 'A very long string'); COMMIT; */ $conn = oci_connect('hr', 'welcome', 'localhost/XE'); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } $stid = oci_parse($conn, 'SELECT id, description FROM mytab'); oci_execute($stid); while (($row = oci_fetch_object($stid)) != false) { echo $row->ID . "<br>\n"; // The following will output the first 11 bytes from DESCRIPTION echo $row->DESCRIPTION->read(11) . "<br>\n"; } // Output is: // 1 // A very long oci_free_statement($stid); oci_close($conn); ?>
Please login to continue.