oci_fetch_object

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

oci_fetch_objectReturns the next row from a query as an object

说明

oci_fetch_object ( resource $statement ) : object

Returns an object containing the next result-set row of a query. Each attribute of the object corresponds to a column of the row. This function is typically called in a loop until it returns FALSE, indicating no more rows exist.

要获取 OCI8 扩展进行数据类型映射的细节,请参见驱动所支持的数据类型

参数

statement

有效的 OCI8 报表标识符 由 oci_parse() 创建,被 oci_execute()REF CURSOR statement 标识执行。

返回值

Returns an object. Each attribute of the object corresponds to a column of the row. If there are no more rows in the statement then FALSE is returned.

Any LOB columns are returned as LOB descriptors.

DATE columns are returned as strings formatted to the current date format. The default format can be changed with Oracle environment variables such as NLS_LANG or by a previously executed ALTER SESSION SET NLS_DATE_FORMAT command.

Oracle's default, non-case sensitive column names will have uppercase attribute names. Case-sensitive column names will have attribute names using the exact column case. Use var_dump() on the result object to verify the appropriate case for attribute access.

Attribute values will be NULL for any NULL data fields.

范例

Example #1 oci_fetch_object() example

<?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);

?>

Example #2 oci_fetch_object() with case sensitive column names

<?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);

?>

Example #3 oci_fetch_object() with LOBs

<?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);

?>

参见

相关文章
php cubrid mysql 兼容性函数 fetch the next row and return it as an objectphp cubrid 函数 fetch the next row from a result setphp ibm db2 函数 returns an object with properties representing columns in the fetched rowphp ibm db2 函数 returns a single column from a row in the result setphp firebird/interbase 函数 fetch a result row from a query as an associative arrayphp maxdb 函数 returns the current row of a result set as an objectphp maxdb 函数 prepare next result from multi queryphp maxdb 函数 returns the number of warnings from the last query for the given linkphp oci8 函数 returns the next row from a query as an associative or numeric arrayphp oci8 函数 returns the next row from a query as an associative arrayphp oci8 函数 returns the next row from a query as an objectphp oci8 函数 returns the next row from a query as a numeric arrayphp oci8 函数 fetches the next row into result bufferphp oci8 函数 returns the next child statement resource from a parent statement resource that has oracle database 12c implicit result setsphp sqlite 函数 fetches the next row from a result set as an arrayphp sqlite 函数 fetches the next row from a result set as an objectphp sqlite 函数 executes a query and returns either an array for one single column or the value of the first rowphp sqlsrv 函数 retrieves the next row of data in a result set as an objectphp hyperwave api 函数 returns the object an anchor belongs tophp sdo das relational 函数 returns the special root object in an otherwise empty data graph. used when creating a data graph from scratch
关注编程学问公众号