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
sqlite_fetch_all
SQLiteResult::fetchAll
SQLiteUnbuffered::fetchAll
(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
sqlite_fetch_all -- SQLiteResult::fetchAll -- SQLiteUnbuffered::fetchAll — Выбирает все записи из результата запроса и возвращает многомерный массив
Описание
$result
[, int $result_type = SQLITE_BOTH
[, bool $decode_binary = true
]] )Объектно-ориентированный стиль (метод):
$result_type = SQLITE_BOTH
[, bool $decode_binary = true
]] )$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($query, SQLITE_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() - Выбирает следующую запись из результата запроса и возвращает массив
