2013-12-09 3 views
0

У меня есть рамки MVC, который работает так:Php - MySQLi подключения к БД несколько раз

/models/Mo_Sql.php (contains the connectdb function) 
/models/Mo_ClassName1.php (that extends Mo_Sql) 
/models/Mo_ClassName2.php (that extends Mo_Sql) 
/models/Mo_ClassName...X.php (that extends Mo_Sql) 
/models/... 

/rules/Ru_ClassName1.php (with private Mo_ClassName1) 
/rules/Ru_ClassName2.php (with private Mo_ClassName2) 
/rules/Ru_ClassName...X.php (with private Mo_ClassNameX) 
/rules/Ru_...... 

/config/config.php with all Mo_ and Ru_ included and is called in every page of my site. 

Обеспокоенность тем, что у меня есть, что, когда я require_once config.php, этот последний включает в себя N Mo_ файлы и N Ru_, поэтому при построении я считаю, что будет открыто несколько подключений db, так как каждый файл Mo_ расширяет Mo_Sql.

Мой вопрос: опасно ли действовать следующим образом? Есть ли другой способ вызвать только один раз Mo_SQL и/или Mo_Sql-> connectdb?

Спасибо за вашу помощь

+2

Почему вы не храните соединение в общем месте? –

+0

Можете указать, что это mvc это случается? –

+0

Создайте свой объект подключения обработчика DB в Singleton и введите его в класс Model. – Snowwolf

ответ

0

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

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

Если вы просто создаете свой собственный проект в родном PHP, тогда вы можете просто реализовать что-то, что ведет себя, как описано в Данииле.

+0

Он отлично работал с одним классом подключения, только один dbconnect на страницу теперь, спасибо – Lebach

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