# sqlite_fetch_all

# SQLiteResult::fetchAll

# SQLiteUnbuffered::fetchAll

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_fetch_all -- SQLiteResult::fetchAll -- SQLiteUnbuffered::fetchAll — Fetches all rows from a result set as an array of arrays

### 说明

sqlite_fetch_all ( resource `$result` [, int `$result_type` = SQLITE_BOTH [, bool `$decode_binary` = `TRUE` ]] ) : array

面向对象风格 (method):

SQLiteResult::fetchAll ([ int `$result_type` = SQLITE_BOTH [, bool `$decode_binary` = `TRUE` ]] ) : array
SQLiteUnbuffered::fetchAll ([ int `$result_type` = SQLITE_BOTH [, bool `$decode_binary` = `TRUE` ]] ) : array

sqlite_fetch_all() returns an array of the entire result set from the `result` resource. It is similar to calling sqlite_query() (or sqlite_unbuffered_query()) and then sqlite_fetch_array() for each row in the result set.

### 参数

`result`

  The SQLite result resource. This parameter is not required when using the object-oriented method.

`result_type`

  可选的 `result_type` 参数接受常量，且决定返回的数组如何被索引。使用 `SQLITE_ASSOC` 会仅返回关联索引（已命名字段），而 `SQLITE_NUM` 会仅返回数值索引。`SQLITE_BOTH` 会同时返回关联和数值索引。`SQLITE_BOTH` 是此函数的默认值。

`decode_binary`

  当 `decode_binary` 参数设置为 `TRUE`（默认值）时，PHP 会解码那些由 sqlite_escape_string() 编码后的二进制数据。通常应保留此值为其默认值，除非要与其他使用 SQLlite 的应用程序建立的数据交互。

### 返回值

Returns an array of the remaining rows in a result set. If called right after sqlite_query(), it returns all rows. If called after sqlite_fetch_array(), it returns the rest. If there are no rows in a result set, it returns an empty array.

由 `SQLITE_ASSOC` 与 `SQLITE_BOTH` 返回的列名会依照 sqlite.assoc_case 配置选项的值决定大小写。

### 范例

Example #1 Procedural example

    <?php
    $dbhandle = sqlite_open('sqlitedb');
    $query = sqlite_query($dbhandle, 'SELECT name, email FROM users LIMIT 25');
    $result = sqlite_fetch_all($query, SQLITE_ASSOC);
    foreach ($result as $entry) {
        echo 'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
    }
    ?>

Example #2 Object-oriented example

    <?php
    $dbhandle = new SQLiteDatabase('sqlitedb');

    $query = $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // buffered result set
    $query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // unbuffered result set

    $result = $query->fetchAll(SQLITE_ASSOC);
    foreach ($result as $entry) {
        echo 'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
    }
    ?>

### 参见

- sqlite_fetch_array() - Fetches the next row from a result set as an array