oci_fetch_object
  (PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_fetch_object — Возвращает следующую строку из результата запроса в виде
   объекта
  
 
 
  Список параметров
  
   
    
     statement 
     - 
      
Корректный идентификатор
выражения OCI8, полученный из функции oci_parse()
и исполненный функцией oci_execute(),
или идентификатор выражения REF CURSOR.
      
    
   
  
  
 
  Возвращаемые значения
  
   Возвращает объект. Каждое свойство объекта соответствуют именам
   столбцов в строке. Если в результате запроса
   больше нет рядов, то возвращает false.
  
  
   Любой столбец LOB возвращается как
   дескриптор LOB.
  
  
   Столбцы DATE возвращаются в виде строк,
   форматированных в соответствии с текущим форматов даты.
   Стандартный формат может быть изменён с помощью переменных окружения
   Oracle, таких как NLS_LANG или с помощью
   предварительно запущенной ALTER SESSION SET
   NLS_DATE_FORMAT команды.
  
  
   Вам не следует забывать о том, что Oracle возвращает имена полей в
   ВЕРХНЕМ регистре, поэтому имена атрибутов объекта будут также в
   ВЕРХНЕМ регистре.
   Используйте функцию var_dump() по отношению
   к полученному объекту для доступа к атрибутам.
  
  
   Значения атрибутов соответствуют null для любых
   NULL полей.
  
  
 
  Примеры
  
   
    Пример #1 Пример использования oci_fetch_object()
    
<?php
/*
  Перед запуском создайте таблицу:
    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) {
    // Используйте имена атрибутов в верхнем регистре для каждого столбца Oracle
    echo $row->ID . "<br>\n";
    echo $row->DESCRIPTION . "<br>\n";
}
// Выведет:
//    1
//    Fish and Chips
oci_free_statement($stid);
oci_close($conn);
?>
     
    
  
  
   
    Пример #2 Пример использования oci_fetch_object()
     с названиями столбцов в различных регистрах
    
<?php
/*
Перед запуском создайте таблицу с именем столбца в различных регистрах:
    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) {
    // Использование имён атрибутов в верхнем регистре для каждого столбца Oracle
    echo $row->ID . "<br>\n";
    // Использование точного написания для имени столбца с различными регистрами
    echo $row->MyDescription . "<br>\n";
}
// Выведет:
//    1
//    Iced Coffee
oci_free_statement($stid);
oci_close($conn);
?>
     
    
  
  
   
    Пример #3 Пример использования oci_fetch_object() с LOB
    
<?php
/*
  Перед запуском создайте таблицу
    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";
    // Таким образом будет выведено первые 11 байт из DESCRIPTION
    echo $row->DESCRIPTION->read(11) . "<br>\n";
}
// Выведет:
//    1
//    A very long
oci_free_statement($stid);
oci_close($conn);
?>
     
    
  
  
 
  Смотрите также
  
   
    - oci_fetch() - Выбирает следующую строку из результата в буфер
 
    - oci_fetch_all() - Выбирает все строки из результата запроса в двумерный массив
 
    - oci_fetch_assoc() - Возвращает следующую строку из результата запроса в виде
   ассоциативного массива
 
    - oci_fetch_array() - Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива
 
    - oci_fetch_row() - Возвращает следующую строку из результата запроса в виде
   нумерованного массива