(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
]] )$query
, resource $dbhandle
[, int $result_type
= SQLITE_BOTH
[, string &$error_msg
]] )Объектно-ориентированный стиль (метод):
$query
[, int $result_type
= SQLITE_BOTH
[, string &$error_msg
]] )
Выполняет 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
, так и идентификатором результата запроса).