sqlite_array_query
SQLiteDatabase::arrayQuery
(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
sqlite_array_query -- SQLiteDatabase::arrayQuery — Выполняет запрос к базе данных и возвращает результат в виде массива
Описание
$dbhandle
, string $query
[, int $result_type
= SQLITE_BOTH
[, bool $decode_binary
= true
]] )$query
, resource $dbhandle
[, int $result_type
= SQLITE_BOTH
[, bool $decode_binary
= true
]] )Объектно-ориентированный стиль (метод):
$query
[, int $result_type
= SQLITE_BOTH
[, bool $decode_binary
= true
]] )sqlite_array_query() выполняет указанный запрос и возвращает массив с полным результирующим набором. Использование sqlite_array_query() идентично использованию sqlite_query() с последующим вызовом sqlite_fetch_array() для каждой записи результата запроса с сохранением записей в массиве, как показано в приведенном ниже примере. sqlite_array_query() выполняется значительно быстрее, чем вышеупомянутая последовательность.
sqlite_array_query() наилучшим образом подходит для запросов, возвращающих до 45 записей. Для запросов, возвращающих большие наборы записей, оптимальным с точки зрения быстродействия является использование функции sqlite_unbuffered_query().
Список параметров
-
query
-
Выполняемый запрос.
Данные, используемые в запросе, должны быть корректно экранированы.
-
dbhandle
-
Ресурс базы данных SQLite, возвращенный из sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.
-
result_type
-
Необязательный параметр
result_type
принимает константу, определяющую, как будет индексирован возвращаемый массив. При использованииSQLITE_ASSOC
будет возвращен ассоциативный массив, а при использованииSQLITE_NUM
- числовой.SQLITE_BOTH
вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции являетсяSQLITE_BOTH
. -
decode_binary
-
Когда параметр
decode_binary
установлен вTRUE
(по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string(). Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.
Замечание: Поддерживаются два альтернативных синтаксиса для совместимости с другими расширениями баз данных (например, MySQL). Предпочитаемая форма - первая, в которой параметр
dbhandle
является первым параметром функции.
Возвращаемые значения
Возвращает массив с полным результирующим набором, иначе возвращается
FALSE
.
Имена столбцов, возвращаемые
SQLITE_ASSOC
и SQLITE_BOTH
, будут
приведены к нужному регистру согласно значению конфигурационной опции
sqlite.assoc_case.
Примеры
Пример #1 Процедурный стиль
<?php
$dbhandle = sqlite_open('sqlitedb');
$result = sqlite_array_query($dbhandle, 'SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
echo 'Имя: ' . $entry['name'] . ' E-mail: ' . $entry['email'];
}
?>
Пример #2 Объектно-ориентированный стиль
<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
$result = $dbhandle->arrayQuery('SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
echo 'Имя: ' . $entry['name'] . ' E-mail: ' . $entry['email'];
}
?>
Смотрите также
- sqlite_query() - Выполняет запрос к базе данных и возвращает идентификатор результата
- sqlite_fetch_array() - Выбирает следующую запись из результата запроса и возвращает массив
- sqlite_fetch_string() - Псевдоним sqlite_fetch_single
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Расширения для работы с базами данных отдельных производителей
- SQLite
- sqlite_array_query
- sqlite_busy_timeout
- sqlite_changes
- sqlite_close
- sqlite_column
- sqlite_create_aggregate
- sqlite_create_function
- sqlite_current
- sqlite_error_string
- sqlite_escape_string
- sqlite_exec
- sqlite_factory
- sqlite_fetch_all
- sqlite_fetch_array
- sqlite_fetch_column_types
- sqlite_fetch_object
- sqlite_fetch_single
- sqlite_fetch_string
- sqlite_field_name
- sqlite_has_more
- sqlite_has_prev
- sqlite_key
- sqlite_last_error
- sqlite_last_insert_rowid
- sqlite_libencoding
- sqlite_libversion
- sqlite_next
- sqlite_num_fields
- sqlite_num_rows
- sqlite_open
- sqlite_popen
- sqlite_prev
- sqlite_query
- sqlite_rewind
- sqlite_seek
- sqlite_single_query
- sqlite_udf_decode_binary
- sqlite_udf_encode_binary
- sqlite_unbuffered_query
- sqlite_valid
Коментарии
Do not use this code, whenever you may get no result:
<?
$return_data=@sqlite_array_query($query,$databaseHandle);
if(!$return_data)
{
//Errorhandling code
die( sqlite_error_string( sqlite_last_error($this->databaseHandle) ) );
}
?>
It will execute the Errorhandling code although there is no error, cause if there is nothing found, sqlite_array_query returns an empty array, which is interpreted as 'false' here.
You will get an Message like:
'not an error'
Instead use:
<?
$return_data=@sqlite_array_query($query,$databaseHandle);
if($return_data===false)
{
//Errorhandling code
}
?>