Funciones de OCI8
PHP Manual

oci_fetch_object

(PHP 5, PECL OCI8 >= 1.1.0)

oci_fetch_objectDevuelve la siguiente fila de una consulta como un objeto

Descripción

object oci_fetch_object ( resource $statement )

Devuelve un objeto que contiene la siguiente fila del conjunto de resultados de una consulta. Cada atributo del objeto corresponde a una columna de la fila. Esta función normalmente es invocada en un bucle hasta que devuelve FALSE, indicando que no existen más filas.

Para más detalles sobre cómo la extensión OCI8 realiza la correspondencia entre tipos de datos, véasen los tipos de datos admitidos por el controlador

Parámetros

statement

Un identificador de sentencia de OCI8 válido creado por oci_parse() y ejecutado por oci_execute(), o un identificador de sentencia de REF CURSOR.

Valores devueltos

Devuelve un objeto. Cada atributo del mismo corresponde a una columna de la fila. Si no existen más filas en el parámetro statement, entonces devuelve FALSE.

Cualquier columna LOB es devuelta como un descriptor de LOB.

Las columnas DATE son devueltas como cadenas con el formato de fecha en uso. El formato predeterminado se puede cambiar con las variables de entorno de Oracle, como NLS_LANG, o ejecutando previamente un comando ALTER SESSION SET NLS_DATE_FORMAT.

Los nombres de columna predeterminados de Oracle insensibles al uso de mayúsculas/minúsculas tendrán nombres de atributo en mayúsculas. Los nombres de columnas sensibles al uso de mayúsculs/minúsculas tendrán nombres de atributo que usan el nombre exacto de la columna. Use var_dump() en el objeto resultante para verificar el uso apropiado de mayúsculas/minúsculas en cada consulta.

Los valores de los atributos serán NULL para cualquier campo de datos NULL.

Ejemplos

Ejemplo #1 Ejemplo de oci_fetch_object()

<?php

/*
  Antes de ejecutarlo, cree la tabla:
    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))) {
    
// Use nombres de atributo en mayúsculas para cada columna estándar de Oracle
    
echo $row->ID "<br>\n";
    echo 
$row->DESCRIPTION "<br>\n"
}

// La salida es:
//    1
//    Fish and Chips

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

?>

Ejemplo #2 oci_fetch_object() con nombres de columnas sensibles al uso de mayúsculas/minúsculas

<?php

/*
  Antes de ejecutarlo, cree la tablas con un nombre de columna sensible al uso de mayúsculas/minúsculas:
    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))) {
    
// Use nombres de atributo en mayúsculas para cada columna estándar de Oracle
    
echo $row->ID "<br>\n";
    
// Use el nombre exacto para nombres de columnas sensibles al uso de mayúsculas/minúsculas
    
echo $row->MyDescription "<br>\n";   
}

// La salida es:
//    1
//    Iced Coffee

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

?>

Ejemplo #3 oci_fetch_object() con LOBs

<?php

/*
  Antes de ejecutarlo, cree la tabla:
    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))) {
    echo 
$row->ID "<br>\n";
    
// Lo siguiente imprimirá los primeros 11 bytes de DESCRIPTION
    
echo $row->DESCRIPTION->read(11) . "<br>\n"
}

// La salida es:
//    1
//    A very long

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

?>

Ver también


Funciones de OCI8
PHP Manual