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() - 쿼리의 다음 행을 숫자형 배열로 반환