oci_fetch_object
(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_fetch_object — Retorna a próxima linha de uma consulta como um objeto
Parâmetros
statement
-
Um identificador de declaração OCI8
válida criada por oci_parse() e executada
por oci_execute() ou um identificador de declaração REF
CURSOR
.
Valor Retornado
Retorna um objeto. Cada atributo do objeto corresponde a uma
coluna da linha. Se não houver mais linhas
em statement
, então false
será retornado.
Quaisquer colunas LOB
são retornadas como descritores LOB.
As colunas DATE
são retornadas como strings
no formato de data atual. O formato padrão pode ser alterado com
variáveis de ambiente Oracle, como NLS_LANG
ou
por um comando ALTER SESSION SET
NLS_DATE_FORMAT
executado anteriormente.
Os nomes de colunas padrão do Oracle, que não diferenciam maiúsculas de minúsculas, terão
nomes de atributos em letras maiúsculas. Os nomes de colunas que diferenciam maiúsculas de minúsculas terão
nomes de atributos usando a mesma capitalização de coluna.
Use var_dump() no objeto de resultado para verificar
a capitalização apropriada para acesso ao atributo.
Os valores dos atributos serão null
para quaisquer campos de
dados NULL
.
Exemplos
Exemplo #1 Exemplo de oci_fetch_object()
<?php
/*
Antes de executar, crie a tabela:
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 nomes de atributos em letras maiúsculas para cada coluna padrão do Oracle
echo $row->ID . "<br>\n";
echo $row->DESCRIPTION . "<br>\n";
}
// O resultado é:
// 1
// Fish and Chips
oci_free_statement($stid);
oci_close($conn);
?>
Exemplo #2 oci_fetch_object() com nomes de colunas que diferenciam maiúsculas de minúsculas
<?php
/*
Antes de executar, crie a tabela com um nome de coluna que diferencie maiúsculas de 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 nomes de atributos em letras maiúsculas para cada coluna padrão do Oracle
echo $row->ID . "<br>\n";
// Use a capitalização exata para o nome da coluna que diferencia maiúsculas de minúsculas
echo $row->MyDescription . "<br>\n";
}
// Resultado:
// 1
// Iced Coffee
oci_free_statement($stid);
oci_close($conn);
?>
Exemplo #3 oci_fetch_object() com LOBs
<?php
/*
Antes de executar, crie a tabela:
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";
// O código a seguir produzirá os primeiros 11 bytes de DESCRIPTION
echo $row->DESCRIPTION->read(11) . "<br>\n";
}
// O resultado é:
// 1
// A very long
oci_free_statement($stid);
oci_close($conn);
?>
Veja Também
- oci_fetch() - Busca a próxima linha de uma consulta em buffers internos
- oci_fetch_all() - Busca várias linhas de uma consulta em um array bidimensional
- oci_fetch_assoc() - Retorna a próxima linha de uma consulta como um array associativo
- oci_fetch_array() - Retorna a próxima linha de uma consulta como um array associativo ou numérico
- oci_fetch_row() - Retorna a próxima linha de uma consulta como um array numérico