oci_fetch_object
(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_fetch_object — Lee una línea de un resultado en forma de objeto
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 de este objeto corresponde a una columna de la línea.
Si no hay más líneas disponibles en la consulta statement
entonces se devuelve false
.
Todas las columnas LOB
son devueltas en forma de
descriptores LOB.
Las columnas DATE
son devueltas en forma de strings formateados
con el formato de fecha actual. El formato por omisión puede ser cambiado mediante las variables
de entorno Oracle, como NLS_LANG
o ejecutando el comando
ALTER SESSION SET NLS_DATE_FORMAT
.
Los nombres de columnas que no son sensibles a la casse (por omisión en Oracle),
tendrán nombres de atributos en mayúsculas. Los nombres de columnas que son sensibles a la
casse, tendrán nombres de atributos utilizando exactamente la misma casse de la columna.
Utilice la función var_dump() sobre el objeto de resultado para verificar
la casse apropiada para el acceso a los atributos.
Los valores de atributo serán null
para cada campo de datos NULL
.
Ejemplos
Ejemplo #1 Ejemplo con oci_fetch_object()
<?php
/*
Antes de la ejecución, 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) {
// Utilice nombres de atributos sensibles a la casse para cada columna estándar de Oracle
echo $row->ID . "<br>\n";
echo $row->DESCRIPTION . "<br>\n";
}
// Muestra:
// 1
// Fish and Chips
oci_free_statement($stid);
oci_close($conn);
?>
Ejemplo #2 Ejemplo con oci_fetch_object() con nombres de columna sensibles a la casse
<?php
/*
Antes de la ejecución, cree la tabla con una columna cuyo nombre es sensible a la casse:
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) {
// Utilice nombres de atributos en mayúsculas para cada columna estándar de Oracle
echo $row->ID . "<br>\n";
// Utilice la casse exacta para los nombres de columnas sensibles a la casse
echo $row->MyDescription . "<br>\n";
}
// Muestra:
// 1
// Iced Coffee
oci_free_statement($stid);
oci_close($conn);
?>
Ejemplo #3 Ejemplo con oci_fetch_object() con LOBs
<?php
/*
Antes de la ejecución, 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)) != false) {
echo $row->ID . "<br>\n";
// Lo siguiente mostrará los 11 primeros bytes desde DESCRIPTION
echo $row->DESCRIPTION->read(11) . "<br>\n";
}
// Muestra:
// 1
// A very long
oci_free_statement($stid);
oci_close($conn);
?>
Ver también
- oci_fetch() - Lee la siguiente línea de un resultado Oracle en un buffer interno
- oci_fetch_all() - Lee múltiples líneas de un resultado en un array multidimensional
- oci_fetch_assoc() - Lee una línea de un resultado en forma de array asociativo
- oci_fetch_array() - Lee una línea de un resultado en forma de array asociativo o numérico
- oci_fetch_row() - Lee la siguiente línea de una consulta en forma de array numérico