# oci_fetch_object

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

oci_fetch_object — Devuelve la siguiente fila de una consulta como un objeto

### Descripción

oci_fetch_object(resource `$statement`): object

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 string con el formato de fecha actual. 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 que insensibles al uso de mayúsculas/minúsculas tendrán nombres de atributos en mayúsculas. Los nombres de columnas sensibles al uso de mayúsculas/minúsculas tendrán nombres de atributos que usan el nombre exacto de la columna. Use var_dump() en el array resultante para verificar el uso apropiado de mayúsculas/minúsculas en cada acceso al atributo.

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)) != false) {
// 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)) != false) {
// 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, 'Un string muy largo');
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";
// Lo siguiente imprimirá los primeros 11 bytes de DESCRIPTION
echo $row->DESCRIPTION->read(11) . "<br>\n";
}
// La salida es:
// 1
// Un string m
oci_free_statement($stid);
oci_close($conn);
?>`

### Ver también

- oci_fetch() - Coloca la siguiente fila de una consulta en los búferes internos
- oci_fetch_all() - Obtiene múltiples filas de una consulta y las ubica en un array bidimiensional
- oci_fetch_assoc() - Devuelve la siguiente fila de una consulta como un array asociativo
- oci_fetch_array() - Devuelve la siguiente fila de una consulta como un array asociativo o numérico
- oci_fetch_row() - Devuelve la siguiente fila de una consulta como un array numérico