oci_fetch_object

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

oci_fetch_objectReturns the next row from a query as an object

Descrierea

oci_fetch_object ( resource $statement ) : object

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.

Pentru detalii despre corespondențele transformărilor tipurilor de date efectuate de extensia OCI8, accesați tipurile de date susținute de driver

Parametri

statement

Un identificator valid de instrucțiune OCI8 creat cu oci_parse() și executat de oci_execute(), sau un identificator de instrucțiune REF CURSOR.

Valorile întoarse

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.

Exemple

Example #1 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);

?>

Example #2 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);

?>

Example #3 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);

?>

A se vedea și

  • oci_fetch() - Fetches the next row from a query into internal buffers
  • oci_fetch_all() - Fetches multiple rows from a query into a two-dimensional array
  • oci_fetch_assoc() - Returns the next row from a query as an associative array
  • oci_fetch_array() - Returns the next row from a query as an associative or numeric array
  • oci_fetch_row() - Returns the next row from a query as a numeric array

add a note add a note

User Contributed Notes 1 note

up
1
juanloman at hilfetech dot com
12 years ago
Please note that you can still reference a column that has a very complex name by using the curly syntax as shown in this example:

<?php

$queryStr
= 'SELECT COUNT(*) FROM FOOBAR'//Complex name!
  // parse and exec...
$queryObj = oci_fetch_object($quertStmt);

echo
'Count: ' . $queryObj->{'COUNT(*)'};  //Curly syntax reference

?>
To Top