ScotlandPHP

sqlite_array_query

SQLiteDatabase::arrayQuery

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

sqlite_array_query -- SQLiteDatabase::arrayQueryВыполняет запрос к базе данных и возвращает результат в виде массива

Описание

array sqlite_array_query ( resource $dbhandle , string $query [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )
array sqlite_array_query ( string $query , resource $dbhandle [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

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

public array SQLiteDatabase::arrayQuery ( string $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

add a note add a note

User Contributed Notes 1 note

up
-2
kendlj at NOSPAM dot web dot de
12 years ago
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
}
?>
To Top