文字

sqlite_fetch_all

SQLiteResult::fetchAll

SQLiteUnbuffered::fetchAll

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

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

说明

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

面向对象风格 (method):

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

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

用户评论:

[#1] Minots Estich <minots at D0X dot de> [2004-10-21 09:15:52]

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($resultSQLITE_ASSOC);

   
// the "well known practice"
   
$i '0';
   while (
$row sqlite_fetch_array($resultSQLITE_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

上一篇: 下一篇: