aci_fetch_object

aci_fetch_object-将查询的下一行作为对象返回

说明

aci_fetch_object(resource $statement, int $mode = aci_ASSOC | aci_RETURN_NULLS): stdClass|false

返回包含查询的下一个结果集行的对象。对象的每个属性对应于行的一列。此函数通常在循环中调用,直到返回false,表示不再存在行。

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

参数

statement

有效的 ACI8 报表标识符 由 aci_parse() 创建,被 aci_execute() 或 REF CURSOR statement 标识执行。

返回值

返回一个对象。对象的每个属性对应于行的一列。如果语句中没有更多的行,则返回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()-以数字数组形式返回查询的下一行