aci_fetch_object¶
aci_fetch_object-将查询的下一行作为对象返回
说明¶
aci_fetch_object(resource $statement, int $mode = aci_ASSOC | aci_RETURN_NULLS): stdClass|false
返回包含查询的下一个结果集行的对象。对象的每个属性对应于行的一列。此函数通常在循环中调用,直到返回false,表示不再存在行。
要获取 ACI8公司扩展进行数据类型映射的细节,请参见驱动所支持的数据类型。
返回值¶
返回一个对象。对象的每个属性对应于行的一列。如果语句中没有更多的行,则返回false。
任何LOB列都作为LOB描述符返回。
DATE列作为字符串返回,格式为当前日期格式。可以使用Oracle环境变量(如NLS_LANG)或以前执行的ALTER SESSION SET NLS_DATE_format命令更改默认格式。
Oracle的默认、不区分大小写的列名将具有大写属性名。区分大小写的列名将具有使用精确列大小写的属性名。对结果对象使用var_dump()验证属性访问的适当大小写。
对于任何null数据字段,属性值都将为空。
范例¶
示例 #1 aci_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 = aci_connect('sysdba', 'szoscar55', 'localhost:2003/OSRDB');
if (!$conn) {
$e = aci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = aci_parse($conn, 'SELECT id, description FROM mytab');
aci_execute($stid);
while (($row = aci_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
aci_free_statement($stid);
aci_close($conn);
?>
示例 #2 aci_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 = aci_connect('sysdba', 'szoscar55', 'localhost:2003/OSRDB');
if (!$conn) {
$e = aci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = aci_parse($conn, 'SELECT id, "MyDescription" FROM mytab');
aci_execute($stid);
while (($row = aci_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
aci_free_statement($stid);
aci_close($conn);
?>
示例 #3 aci_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 = aci_connect('sysdba', 'szoscar55', 'localhost:2003/OSRDB');
if (!$conn) {
$e = aci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = aci_parse($conn, 'SELECT id, description FROM mytab');
aci_execute($stid);
while (($row = aci_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
aci_free_statement($stid);
aci_close($conn);
?>
参见¶
aci_fetch()-将下一行提取到结果缓冲区
aci_fetch_all()-获取结果数据的所有行到一个数组
aci_fetch_assoc()-将查询的下一行作为关联数组返回
aci_fetch_object()-将查询的下一行作为对象返回
aci_fetch_row()-以数字数组形式返回查询的下一行