Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует


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

sqlite_popen Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует

Описание

resource sqlite_popen ( string $filename [, int $mode = 0666 [, string &$error_message ]] )

Эта функция идентична sqlite_open(), за исключением того, что она использует механизм постоянных соединений PHP. Описание аргументов находится в описании функции sqlite_open().

sqlite_popen() пытается найти уже открытый дескриптор постоянного подключения к файлу filename. Если такой дескриптор уже есть, функция возвращает его, иначе он открывается заново.

Выгода от использования постоянного подключения заключается в том, что не тратится время на открытие файла и чтение структуры данных при каждом запросе. Это справедливо только в случае использования PHP в качестве SAPI веб-сервера (любой SAPI, кроме CGI и CLI).

Замечание: При использовании постоянных подключений необходимо следить за тем, чтобы файл базы данных не перезаписывался внешними процессами (например, программой, запущенной с помощью crontab), которые пересоздают файл с базой данных (например, с помощью удаления и создания заново или при замене старой версии обновленной версией из другого файла), так как это вызовет непредсказуемые последствия при удалении старой версии базы данных. Для избежания этой ситуации, убедитесь что ваши фоновые процессы открывают нужный файл с базой данных и выполняют обновления с помощью транзакций.

Список параметров

filename

Имя файла базы данных SQLite. Если файл не существует, SQLite попытается создать его. PHP должен владеть правами записи на файл в случае вставки данных, изменения схемы базы данных или создания файла с базой данных, если он не существует.

mode

Режим прав доступа на файл. Предназначется для открытия базы данных в режиме только для чтения, однако в настоящее время этот аргумент не используется библиотекой sqlite. Значением по умолчанию (и рекомендуемым к использованию) является восьмеричное 0666.

error_message

Передается по ссылке и устанавливается в читабельное сообщение об ошибке, объясняющее почему не удалось открыть базу данных, в случае возникновения таковой ошибки.

Возвращаемые значения

Возвращает ресурс (дескриптор базы данных) в случае успеха, или FALSE в случае ошибки.

Смотрите также

  • sqlite_open() - Открывает базу данных SQLite или создает ее, если она не существует
  • sqlite_close() - Закрывает открытую базу данных SQLite
  • sqlite_factory() - Открывает базу данных SQLite и возвращает объект