Я не похож на разработчика php, но мне нужно его использовать, и я не знаю, как PHP обрабатывает выделение памяти во время сеанса.
Я работаю над приложением, которое запрашивает HTTP-аутентификацию, после того как вы вошли в систему, вы можете управлять данными через приятный интерфейс.
Кто-то сказал мне в другом сообщении, что я не должен закрывать соединение данных mysql после каждого выполнения, но я не знаю, как это соединение остается памятью во время использования этого приложения, потому что на стороне сервера я понятия не имею, что PHP держит памяти или нет.
Поэтому я должен задать один синглтон для подключения к db и никогда не закрывать его (потому что я никогда не узнаю, когда приложение не используется. Или я должен стоять на том, что я делаю сегодня: открытие соединения -> инструкция выполнения – -> закрыть соединение.
PS: Я использую mysqli
Изменить 1 :
Мое приложение имеет дизайн с шаблоном MVC, означающим:
|''''''''''| |'''''''''''''| |''''''''''''''| | view.php | ==> | control.php | ==> | database.php | |----------| |_____________| |______________|
Этот шаблон позволяет представлению взаимодействовать с данными только через control.php
которые затем вызывают функцию из базы SELECT
для SELECT
или EDIT
данных. с объяснениями, которые вы мне даете, я должен поставить:
public function __destruct(){ mysql_close($this->connection); }
внутри database.php
, но эта страница загружается, когда есть необходимость выбирать или изменять данные, поэтому она выполняется только в течение короткого времени, то есть она все равно будет закрывать соединение в конце запроса.
Что дает более точный вопрос о том, где я должен поставить мир кода, который вы предоставляете, или мой шаблон имеет отношение к PHP?
Никогда не создавайте новое соединение для каждого запроса; Вам даже не нужно закрывать его вручную.
Просто создайте соединение в начале страницы
взгляните: как вы эффективно подключаетесь к mysql в php, не пересоединяясь при каждом запросе
вы можете использовать это:
public function __destruct() { mysql_close($this->connection); }
он будет вызван, когда страница будет закрыта
Из документации PHP Mysqli:
связь между клиентским процессом и базой данных может быть повторно использована клиентским процессом, а не создаваться и уничтожаться несколько раз. Это уменьшает накладные расходы …