# oci_fetch

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

oci_fetch — Fetches the next row into result-buffer

### 说明

oci_fetch ( resource `$statement` ) : bool

oci_fetch() 获取下一行（对于 SELECT 语句）到内部结果缓冲区。

> Note:

> 在 PHP 5.0.0 之前的版本必须使用 ocifetch() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_fetch() 的别名。不过其已被废弃，不推荐使用。

### 参数

`statement`

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

### 返回值

Returns `TRUE` on success or `FALSE` if there are no more rows in the `statement`.

### 范例

Example #1 oci_fetch() with defined variables

    <?php

    $conn = oci_connect('hr', 'welcome', 'localhost/XE');
    if (!$conn) {
        $e = oci_error();
        trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
    }

    $sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
    $stid = oci_parse($conn, $sql);

    // The defines MUST be done before executing
    oci_define_by_name($stid, 'LOCATION_ID', $locid);
    oci_define_by_name($stid, 'CITY', $city);

    oci_execute($stid);

    // Each fetch populates the previously defined variables with the next row's data
    while (oci_fetch($stid)) {
        echo "Location id $locid is $city<br>\n";
    }

    // Displays:
    //   Location id 1000 is Roma
    //   Location id 1100 is Venice

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

    ?>

Example #2 oci_fetch() with oci_result()

    <?php

    $conn = oci_connect('hr', 'welcome', 'localhost/XE');
    if (!$conn) {
        $e = oci_error();
        trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
    }

    $sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
    $stid = oci_parse($conn, $sql);
    oci_execute($stid);

    while (oci_fetch($stid)) {
        echo oci_result($stid, 'LOCATION_ID') . " is ";
        echo oci_result($stid, 'CITY') . "<br>\n";
    }

    // Displays:
    //   1000 is Roma
    //   1100 is Venice

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

    ?>

### 注释

> Note:

> In PHP versions before 5.0.0 use ocifetch() instead. 在当前版本中，旧的函数名还可以被使用，但已经被废弃并不建议使用。

### 参见

- oci_define_by_name() - 在 SELECT 中使用 PHP 变量作为定义的步骤
- oci_fetch_all() - 获取结果数据的所有行到一个数组
- oci_fetch_array() - Returns the next row from a query as an associative or numeric array
- oci_fetch_assoc() - Returns the next row from a query as an associative array
- oci_fetch_object() - Returns the next row from a query as an object
- oci_fetch_row() - Returns the next row from a query as a numeric array
- oci_result() - 返回所取得行中字段的值