2016-02-25 3 views
2

Я хотел бы знать, правильно ли повторно использовать соединение PDO db несколько раз?Повторное использование соединения PDO после выполнения?

Например, я установил его в своем контроллере и передал его как параметр в конструкторе класса, правильно ли вызывать одно и то же соединение (используя такую ​​функцию, как get_Database), хотя все мои функции в классе и даже передать его как параметр в другой конструкции класса, чтобы продолжить работу с тем же соединением?

Или мне нужно открыть соединение в какой-то момент?

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

+2

Его не только ОК рекомендуется. Создание связи - сравнительно медленный процесс. Всегда используйте соединение по одному сценарию – RiggsFolly

ответ

2

Да, вы должны повторно использовать соединение.

Или мне нужно открыть соединение в какой-то момент?

Единственная причина для открытия нового соединения - это подключение к другой базе данных. В противном случае в рамках всего одного сценария должно использоваться только одно соединение.

Для этого важно попытаться избежать использования статического синглтона во всем приложении, а узнать о dependency injection, чтобы разработать код для совместного использования одного и того же экземпляра PDO с каждой функцией или классом, который в ней нуждается.

Однако я не совсем уверен, что это будет хорошо работать, когда вы живете.

commented Как, если вы повторно открыть соединение часто, это будет намного медленнее .


Есть из многих форсунки DEPENDENCY там, и это почти наверняка дело вкуса, но мне нравится Auryn. Изучение этого должно помочь вам разработать код, где проще использовать один экземпляр PDO, среди прочих.

1

Да, это нормально, и это лучше, чем подключение к базе данных много раз. documentation даже предлагает использовать открытое соединение между вызовами на ваш PHP скрипт/приложение:

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

Смежные вопросы