Держите соединение с базой данных открытым с помощью вызовов ajax - PullRequest
0 голосов
/ 16 ноября 2010

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

Пользователь может запустить функцию mysql_connect (), но затем это соединение немедленно закрывается после завершения вызова ajax.Есть ли способ сохранить это соединение открытым?Я посмотрел на mysql_pconnect (), но, похоже, это не то, что я хочу.

Спасибо

Ответы [ 3 ]

0 голосов
/ 17 ноября 2010

Если вам действительно нужно держать соединение открытым, я бы рассмотрел возможность установки любого возвращаемого значения, которое вы получаете от mysql_connect (), в качестве значения сеанса пользователя (отказ от ответственности: я не знаю PHP, что я и предполагаю, что вы используете ). Затем с каждым запросом AJAX проверяйте его существование и используйте повторно, если он уже есть. Однако, если реальная проблема, с которой вы сталкиваетесь, заключается в поддержании какого-то переходного состояния, характерного для соединения, я бы пересмотрел проект и сделал что-то, что сохраняется между соединениями, привязанными к какому-то уникальному идентификатору из сеанса пользователя.

0 голосов
/ 17 ноября 2010

Запустите ваш скрипт в режиме fast-cgi как единый процесс.Или даже использовать что-то вроде http://phpdaemon.net

0 голосов
/ 16 ноября 2010

Я должен быть потерян.После запуска сценария соединение должно закрыться, и gc должен очистить его на сервере.В противном случае у вас будут проблемы с памятью.

Кроме того, вызов Ajax не должен устанавливать соединение с базой данных, а должен выполняться сценарий, выполняемый на сервере.Опять же, этот скрипт должен закрыть соединение после его завершения.

Полагаю, я не совсем понимаю вашу проблему.

...