oci_fetch_object

Returns the next row from a query as an object

&reftitle.description; ``stdClass``false```oci_fetch_object` `resource` `statement` `int` `mode` OCI_ASSOC | OCI_RETURN_NULLS

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.

&oci.datatypes;
&reftitle.parameters;

`statement`

- &oci.arg.statement.id;
&reftitle.returnvalues;

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.

&reftitle.examples;

### `oci_fetch_object` example

    <?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);

    ?>

### `oci_fetch_object` with case sensitive column names

    <?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);

    ?>

### `oci_fetch_object` with LOBs

    <?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);

    ?>

&reftitle.seealso;

- `oci_fetch`
- `oci_fetch_all`
- `oci_fetch_assoc`
- `oci_fetch_array`
- `oci_fetch_row`