проверить наличие постоянного и постоянного подключения SQLite в PHP - PullRequest
3 голосов
/ 30 августа 2011

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

Вопрос в том, как проверить, существует ли в настоящий момент постоянное соединение SQLite, не открывая и не вызывая его (следовательно, создавая соединение).

См .: php SQLite постоянное соединение

Ответы [ 2 ]

1 голос
/ 30 августа 2011

Если вы используете PDO, вы можете просто проверить, является ли обработчик нулевым или нет, прежде чем запускать сценарии обслуживания.Таким образом, вы не будете создавать соединение, как с sqlite_popen()

Создайте постоянное соединение с PDO, если хотите: $handler = new PDO('sqlite:test.db', NULL, NULL, array(PDO::ATTR_PERSISTENT => TRUE));

... Тогда вы можете просто закрыть соединение до того, какСценарий обслуживания вызывается при условии, что он работает по какому-то графику:

if(!is_null($handler)){
$handler = null;
//run maintenance script, recreate connection once finished
}
1 голос
/ 30 августа 2011

Если у вас есть доступ к shell_exec () или exec, вы можете запустить команду оболочки, чтобы проверить, запущен ли процесс sqlite, используя что-то вроде top или, возможно, команду типа lsof -i -n -P | grep sqlite, предполагая, что sqlite является именем процесс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...