oci_fetch_object

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

oci_fetch_object — 쿼리의 다음 행을 객체로 반환


설명

oci_fetch_object(resource $statement, int $mode = OCI_ASSOC | OCI_RETURN_NULLS): stdClass|false

쿼리의 다음 결과 집합 행을 포함하는 개체를 반환합니다. 개체의 각 속성은 행의 열에 해당합니다. 이 함수는 일반적으로 행이 더 이상 존재하지 않음을 나타내는 false를 반환할 때까지 루프에서 호출됩니다.

OCI8 확장이 수행하는 데이터 유형 매핑에 대한 자세한 내용은 드라이버에서 지원하는 데이터 유형을 참조하십시오.


매개변수

statement
oci_parse()에 의해 생성되고 oci_execute()에 의해 실행되는 유효한 OCI8 문 식별자 또는 REF CURSOR 문 식별자.

반환 값

개체를 반환합니다. 개체의 각 속성은 행의 열에 해당합니다. statement에 더 이상 행이 없으면 false가 반환됩니다.

모든 LOB 열은 LOB 설명자로 반환됩니다.

DATE 열은 현재 날짜 형식으로 형식이 지정된 문자열로 반환됩니다. 기본 형식은 NLS_LANG와 같은 Oracle 환경 변수를 사용하거나 이전에 실행된 ALTER SESSION SET NLS_DATE_FORMAT 명령으로 변경할 수 있습니다.

대소문자를 구분하지 않는 Oracle의 기본 열 이름에는 대문자 속성 이름이 있습니다. 대소문자를 구분하는 열 ​​이름에는 정확한 열 대소문자를 사용하는 속성 이름이 있습니다. 결과 개체에서 var_dump()를 사용하여 속성 액세스에 대한 적절한 경우를 확인합니다.

속성 값은 모든 NULL 데이터 필드에 대해 null이 됩니다.


Examples

예제 #1 oci_fetch_object() 예제

                  
<?php

/*
  Before running, create the table:
    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 upper case attribute names for each standard Oracle column
    echo $row->ID . "<br>\n";
    echo $row->DESCRIPTION . "<br>\n";
}

// Output is:
//    1
//    Fish and Chips

oci_free_statement($stid);
oci_close($conn);

?>
                    
                  

예제 #2 대소문자를 구분하는 열 ​​이름이 있는 oci_fetch_object()

                   
<?php

/*
  Before running, create the table with a case sensitive column name:
    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 upper case attribute names for each standard Oracle column
    echo $row->ID . "<br>\n";
    // Use the exact case for the case sensitive column name
    echo $row->MyDescription . "<br>\n";
}

// Output is:
//    1
//    Iced Coffee

oci_free_statement($stid);
oci_close($conn);

?>
                   
                 

예제 #3 LOB가 있는 oci_fetch_object()

                  
<?php

/*
  Before running, create the table:
    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";
    // The following will output the first 11 bytes from DESCRIPTION
    echo $row->DESCRIPTION->read(11) . "<br>\n";
}

// Output is:
//    1
//    A very long

oci_free_statement($stid);
oci_close($conn);

?>
                    
                  

기타

  • oci_fetch() - 쿼리에서 내부 버퍼로 다음 행을 가져옵니다.
  • oci_fetch_all() - 쿼리에서 여러 행을 2차원 배열로 가져옵니다.
  • oci_fetch_assoc() - 쿼리의 다음 행을 연관 배열로 반환
  • oci_fetch_array() - 쿼리의 다음 행을 연관 또는 숫자 배열로 반환합니다.
  • oci_fetch_row() - 쿼리의 다음 행을 숫자형 배열로 반환