Подтвердить что ты не робот

Необходимо закрыть соединения PDO

Я заметил, что для PDO нет закрытой функции. Должен ли я закрыть соединение или нет необходимости в PDO?

4b9b3361

Ответ 1

После успешного подключения к базе данных экземпляр класса PDO возвращается на ваш script. Соединение остается активным для времени жизни этого объекта PDO. Чтобы закрыть соединение, вам нужно уничтожить объект, убедившись, что все остальные ссылки на него удалены - вы делаете это, назначая NULL переменной, которая содержит объект. Если вы не сделаете это явно, PHP автоматически закроет соединение, когда закончится ваш script.

http://php.net/manual/en/pdo.connections.php

Итак, ответ отрицательный, вам не нужно ничего делать, если вам не нужно явно закрывать соединение во время выполнения script по какой-либо причине, и в этом случае просто установите для вашего объекта PDO значение null.

Ответ 2

Этот вопрос немного зависит от типа проекта и типа подключения.

Почти во всех моих проектах я никогда не закрываю соединение вручную. В PHP соединение (если оно не является постоянным соединением) будет открыто только во время запроса. Поэтому ручное закрытие в любом случае бесполезно.

При просмотре моих проектов, где не было постоянного соединения, было бы очень трудно узнать, когда вручную закрыть соединение в любом случае. Как только проект становится больше, чем несколько файлов (и отдельные компоненты не имеют представления об афоризме, как они должны), становится очень сложно узнать, когда соединение будет по-прежнему необходимо.

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

Что-то, хотя при работе с постоянным подключением возникнут ситуации, когда вы захотите вручную закрыть соединение.

Итак, чтобы ответить на ваш вопрос:

Я заметил, что для PDO нет закрытой функции.

Вы можете аннулировать ссылку на объект (и все ссылки на объект), чтобы вручную закрыть соединение в PHP.

Должен ли я закрыть соединение или нет необходимости в PDO?

В большинстве случаев это необязательно.

Ответ 3

Из PDO connection страница

После успешного подключения к базе данных экземпляр класса PDO возвращается на ваш script. Соединение остается активным для времени жизни этого объекта PDO. Чтобы закрыть соединение, вам нужно уничтожить объект, убедившись, что все остальные ссылки на него удалены - вы делаете это, назначая NULL переменной, которая содержит объект.

Если вы не сделаете это явно, PHP автоматически закроет соединение, когда ваш script закончится.


ИЗМЕНИТЬ

Я бы предпочел использовать постоянное соединение. Хотя, это хорошая практика, чтобы закрыть все соединения в конце script.