ScotlandPHP

sqlite_fetch_all

SQLiteResult::fetchAll

SQLiteUnbuffered::fetchAll

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

sqlite_fetch_all -- SQLiteResult::fetchAll -- SQLiteUnbuffered::fetchAllВыбирает все записи из результата запроса и возвращает многомерный массив

Описание

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

Объектно-ориентированный стиль (метод):

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() возвращает массив с полным результирующим набором из ресурса result. Она похожа на вызов функци sqlite_query() (или sqlite_unbuffered_query()), а затем sqlite_fetch_array() для каждого ряда результирующего набора.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

result_type

Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM - числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH.

decode_binary

Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string(). Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.

Возвращаемые значения

Возвращает массив с оставшимися рядами в результирующем наборе. Возвращает все ряды при вызове сразу после sqlite_query(). При вызове после sqlite_fetch_array(), функция вернет оставшиеся ряды. Если в результирующем наборе больше нет рядов, то будет возвращен пустой массив.

Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH, будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.

Примеры

Пример #1 Процедурный стиль

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

Пример #2 Объектно-ориентированный стиль

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

$query $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // буферизованный результирующий набор
$query $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // небуферизованный результирующий набор

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

Смотрите также

  • sqlite_fetch_array() - Выбирает следующую запись из результата запроса и возвращает массив

add a note add a note

User Contributed Notes 1 note

up
0
13 years ago
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
To Top