Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Многократное подключение файла для соединения с базой данных
 
 автор: neokortex   (14.07.2011 в 01:16)   письмо автору
 
 

В книге "Объектно-ориентированное программирование на PHP" в приложении 1 (стр. 556-557) есть пример файла где происходит соединение с базой данных. Далее в примерах кода предполагается require_once подключение этого файла.

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

Дело в том, что сейчас у меня один раз подключается файл соединения с базой, а дальше только mysql_query везде. Хочу попробовать класс mysqli (или, например DbSimple), вот и интересует этот вопрос.

  Ответить  
 
 автор: cheops   (14.07.2011 в 11:12)   письмо автору
 
   для: neokortex   (14.07.2011 в 01:16)
 

Протокол HTTP, а в след за ним и PHP не обладает сессионностью. Т.е. вы не можете установить соединение и использовать его на протяжении часов на нескольких страницах и клиентах. В конце каждой PHP-страницы соединение закрывается автоматически, как в mysql, так и в mysqli, так и в любом классе. Установить соединение и использовать его долго можно только в десктопных программах, у которых переход от одной страницы к другой не означают новый запрос к серверу и обработку его новым потоком (у которого нет контекста соседнего потока). Нормально это или ненормально - другой вопрос и вопрос этот к протоколу HTTP. Это упрощенный подход позволил в свое время упростить проткол, ПО и привел к взрывообразному развитию Web. Поэтому мы имеем то, что имеем - использовать что-то другое для исправления ситуации бесполезно - везде так, когда речь заходит о Web.

  Ответить  
 
 автор: neokortex   (14.07.2011 в 11:39)   письмо автору
 
   для: cheops   (14.07.2011 в 11:12)
 

Это понято.
Понятно, что каждый раз при загрузке страницы - мы устанавливаем соединение с базой данных. Но что если при генерации страницы файл для соединения с базой подключается 50 раз. Это значит 50 раз происходит соединение с базой? Или не так?

  Ответить  
 
 автор: cheops   (14.07.2011 в 11:47)   письмо автору
 
   для: neokortex   (14.07.2011 в 11:39)
 

Нет, во-первых функция mysql_connect() не устанавливает соединение по-новой, если у неё в пуле есть соединение с такими параметрами, она просто возвращает ссылку на установленное соединение. Во-вторых require_once(), в отличие от require() выполняется только один раз, сколько бы раз в коде не встречался вызов файла с данным именем.

  Ответить  
 
 автор: neokortex   (14.07.2011 в 11:52)   письмо автору
 
   для: cheops   (14.07.2011 в 11:47)
 

Теперь понятно, спасибо.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования