sqlite_query
SQLiteDatabase::query
(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
sqlite_query -- SQLiteDatabase::query — Выполняет запрос к базе данных и возвращает идентификатор результата
Описание
$dbhandle
, string $query
[, int $result_type
= SQLITE_BOTH
[, string &$error_msg
]] ) : resource$query
, resource $dbhandle
[, int $result_type
= SQLITE_BOTH
[, string &$error_msg
]] ) : resourceОбъектно-ориентированный стиль (метод):
$query
[, int $result_type
= SQLITE_BOTH
[, string &$error_msg
]] ) : SQLiteResult
Выполняет SQL-запрос query
к указанному
дескриптору базы данных.
Список параметров
-
dbhandle
-
Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Параметр не требуется при использовании объектно-ориентированного подхода.
-
query
-
Выполняемый запрос.
Данные в запросе должны быть корректно экранированы.
-
result_type
-
Необязательный параметр
result_type
принимает константу, определяющую, как будет индексирован возвращаемый массив. При использованииSQLITE_ASSOC
будет возвращен ассоциативный массив, а при использованииSQLITE_NUM
- числовой.SQLITE_BOTH
вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции являетсяSQLITE_BOTH
. -
error_msg
-
Указанная переменная будет заполнена в случае возникновения ошибки. Это особенно важно, так как ошибки синтаксиса SQL не возвращаются функцией sqlite_last_error().
Замечание: Поддерживаются два альтернативных синтаксиса для совместимости с другими расширениями баз данных (например, MySQL). Предпочитаемая форма - первая, в которой параметр
dbhandle
является первым параметром функции.
Возвращаемые значения
Функция возвращает идентификатор результата запроса или FALSE
в случае возникновения ошибки.
Для запросов, возвращающих данные, этот идентификатор может
использоваться в качестве аргумента таких функций как
sqlite_fetch_array() и
sqlite_seek().
Независимо от типа запроса, в случае возникновения ошибки функция
возвращает FALSE
.
sqlite_query() возвращает буферизованный результирующий набор, по которому также можно перемещаться в различных направлениях. Её следует использовать для запросов, возвращающих относительно небольшое количество записей, если вам необходим случайный доступ к записям. Дескриптор буферизованного результата выделит память для всего возвращаемого результата и не возвратит ее, пока весь результат не будет полностью получен. Если вам необходим только последовательный доступ к записям, рекомендуется использовать намного более производительную функцию sqlite_unbuffered_query().
Список изменений
Версия | Описание |
---|---|
5.1.0 |
Добавлен параметр error_msg
|
Примечания
SQLite выполнит несколько запросов, разделенных точкой с запятой, что можно использовать, например, для выполнения запросов, прочитанных из файла. Однако, это работает только в случае, если результат функции не используется - если он используется, то будет выполнен только первый запрос. Функция sqlite_exec() всегда выполняет все запросы.
При выполнении нескольких запросов, функция возвращает FALSE
в
случае возникновения ошибки, иначе возвращаемое значение будет неопределенным
(оно может быть как TRUE
, так и идентификатором результата запроса).
Смотрите также
- sqlite_unbuffered_query() - Выполняет запрос без буферизации результатов
- sqlite_array_query() - Выполняет запрос к базе данных и возвращает результат в виде массива