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
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