sqlite_fetch_all

(PHP 5)

sqlite_fetch_all

(no version information, might be only in CVS)

SQLiteResult->fetchAll

(no version information, might be only in CVS)

SQLiteUnbuffered->fetchAll -- Fetches all rows from a result set as an array of arrays

说明

array sqlite_fetch_all ( resource result [, int result_type [, bool decode_binary]] )

Object oriented style (method):

class SQLiteResult {

array fetchAll ( [int result_type [, bool decode_binary]] )

}class SQLiteUnbuffered {

array fetchAll ( [int result_type [, bool decode_binary]] )

}

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() 编码的数据。通常应保留此值为其默认值,除非在操作其它支持 sqlite 程序建立的数据库时。

返回值

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_ASSOCSQLITE_BOTH 返回的列名会根据 sqlite.assoc_case 配置选项的值来决定大小写。

范例

例子 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'];
}
?>

例子 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'];
}
?>


add a note add a note User Contributed Notes
Minots Estich <minots at D0X dot de>
22-Oct-2004 12:15
The usage of sqlite_fetch_all should be your choise
(instead the well known practice of "while()" loop)
when unmodified tabledata is prefered.

Example code for a better illustration:
<?php
if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)):
  
$query  = "SELECT x, y FROM sometable LIMIT 3;";
  
$result = sqlite_query($dbhandle, $query);

  
// usage with sqlite_fetch_all
  
$array1 = sqlite_fetch_all($result, SQLITE_ASSOC);

  
// the "well known practice"
  
$i = '0';
   while (
$row = sqlite_fetch_array($result, SQLITE_ASSOC)):
      
$array2["$i"] = $row;
      
$i++;
   endwhile;

  
sqlite_close($dbhandle);
endif;
?>

There are no differents within the values of array1 and array2.
Both arrays will be something like:

Array
(
   [0] => Array
       (
           [x] => 22004
           [y] => example_data1
       )

   [1] => Array
       (
           [x] => 92044
           [y] => example_data2
       )

   [2] => Array
       (
           [x] => 143060
           [y] => example_data3
       )
)

If you want to let me know about your comments, feel
free to send me a note via feedback-formular at:
http://www.d0x.de/pages/kontakt.php