[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: подключение к базе
vagon
Здравствуйте!
Раньше использовал такое подключение файла для соединения с базой данных:

require('config.php');

после выполнения нужных действий следовало:

mysql_close($con);

После переделки скрипта опытным человеком теперь используется такое:

require_once('config.php');

mysql_close($con); - было при переделке вынесено отовсюду, но я не помню, было ли хоть одно единственное подвале....

вопрос: нужно ли закрывать соединение, также как и в первом случае? По идее оно и так однократное ...



Спустя 6 часов, 44 минуты, 34 секунды (3.07.2011 - 06:37) inpost написал(а):
vagon
Дело тут совсем в другом.
Соединение само закрывается в конце страницы всей, если с момента твоей строчки mysql_close($con); ещё много-много кода, как у меня на сайте, то закрывать надо, зачем висеть лишнему соединению с БД когда более он не нужен, так как MySQL имеет лимит открытых соединений. Если же у тебя закрытие в конце файла - то разницы никакой.

Спустя 7 часов, 52 минуты, 24 секунды (3.07.2011 - 14:29) vagon написал(а):
Цитата
Если же у тебя закрытие в конце файла - то разницы никакой.


Так в том и дело что открывается оно в голове, и все до подвала работает на нем же. в подвале закрывать нужно или нет? После подвала уже нет никакого кода. Страница кончилась.

Спустя 3 часа, 16 минут, 56 секунд (3.07.2011 - 17:46) inpost написал(а):
vagon
Изучай MVC, тогда оно будет закрываться ещё до создания страницы, приблизительно 20-30% всего кода обработается и соединение закроется, а после уже работать будешь с полученными данными. Вот тут вообще про MVC: irbis-team.com

Спустя 2 часа, 8 минут, 14 секунд (3.07.2011 - 19:55) Guest написал(а):
На irbis-team.com ничего про MVC не нашел. Закрывать то нужно вообще или нет? user posted image

Спустя 6 минут, 48 секунд (3.07.2011 - 20:01) ИНСИ написал(а):
Цитата
Закрывать то нужно вообще или нет?

Если у тебя, страница состоит из обычной выборки с БД, можно не закрывать. Если у тебя идет где-то upload больших файлов на сервер или конвертор видео где-то работает, то выдаст ошибку ... Типа время открытия соеднения mysql истекло ... Поэтому перед этими всеми операциями, надо закрывать соединение.

Спустя 34 минуты, 44 секунды (3.07.2011 - 20:36) inpost написал(а):
Guest
http://irbis-team.com/ - Слева навигация - Структура сайта (MVC), вроде на видном месте.

Пропусти свой скрипт через увеличительное стекло, первую минуту у тебя идёт соединение с БД и выборка, вторые 2 минуты - у тебя обрабатываются полученные данные. MySQL поддерживает всего 500 открытых соединений, допустим, вот если ты закроешь в конце скрипта соединение, то соединение каждое будет жить 3 минуты, вместо возможных 1, итого ты уменьшаешь количество посетителей в ЧАС ровно в 3 раза! Если закроешь после первой минуты, после всех выборок, тогда выграешь 2 минуты(!).
Все цифры вымышлены, просто демонстрирую тебе работу Мускула и необходимость закрывать когда и как.

Спустя 11 часов, 34 минуты, 23 секунды (4.07.2011 - 08:11) linker написал(а):
Забей на MVC, изучи сначала тонкости обычного кодинга. Если закрытие соединения стояло в конце скрипта, то нет ничего плохого в том, что его вообще стёрли. Короче, в твоём случае можно не переживать.

Спустя 13 минут, 30 секунд (4.07.2011 - 08:24) Krevedko написал(а):
inpost -а мне кажется это паранойя. эдак можно после каждого запроса соединение закрывать, а перед каждым-открывать.

Спустя 10 минут, 5 секунд (4.07.2011 - 08:34) Guest написал(а):
Цитата
После переделки скрипта опытным человеком теперь используется такое:

require_once('config.php');

Ну это так не в тему но на заметку расскажите опытному человеку что скобки в require_once не нужны:


require_once 'config.php';

Спустя 2 минуты, 11 секунд (4.07.2011 - 08:36) Krevedko написал(а):
кстати да ! rolleyes.gif
видимо не такой он и опытный.

Спустя 8 минут, 30 секунд (4.07.2011 - 08:45) linker написал(а):
А вам не пофигу на скобки? Они что-то решают вообще? Хотелось бы, чтобы меня просветили, а то до недавнего времени сам использовал скобки, ибо помогает лучше читать код.

Спустя 28 минут, 47 секунд (4.07.2011 - 09:14) Guest написал(а):
В принципе ничего страшного в этих скобках нет, просто я например привык скобки использовать только в функциях или конструкторах класса, а так как require_once это конструкция языка такая как например echo то использую только кавычки.

Спустя 46 секунд (4.07.2011 - 09:14) Guest написал(а):
Это просто уже вопрос форматирования кода и все

Спустя 3 часа, 13 минут, 12 секунд (4.07.2011 - 12:28) inpost написал(а):
Krevedko
Ну так скрипт тоже тратит время на открытие и на закрытие соединения время, поэтому это тоже не совсем правильно, загружать открытием и закрытием соединений.
Я говорю, что может быть актуальным, а может быть нет, в зависимости от ситуации. И параноя для тех, кто не сталкивается с такой вещью как "превышен лимит открытых соединений" smile.gif Когда даже очередь Мускула не справляется с числом посетителей, поэтому этот вопрос из разряда оптимизации.
Вот типичный пример показал Вэлбокс, то есть ты открыл соединение, а потом загружаешь в БД фотографию на 30 мб, соединение в таком случае не доживёт до полной загрузки, а вот большую часть времени - будет открытым. И если твой сайт считается файловым сервером, то тут уже надо вовремя закрывать и открывать соединения, если вдруг многие в час-пик будут заливать файлы. Пока 500 человек заливают файлы, другие 500 не смогут даже авторизироваться секунд 30-60.

Спустя 32 минуты, 10 секунд (4.07.2011 - 13:00) tatti написал(а):
а ещё есть include_once()

Спустя 1 час, 6 минут, 43 секунды (4.07.2011 - 14:06) Krevedko написал(а):
ваши познания, мэм, поражают воображение )

Спустя 18 минут, 17 секунд (4.07.2011 - 14:25) tatti написал(а):
biggrin.gif только не думайте на основании этого, что мы с вами похожи tongue.gif
Цитата (Krevedko @ 4.07.2011 - 09:17)
это если есть рега.
а иначе лучше в куку тогда писать наверное
ибо ваши познания не раз будоражили мой внутренний мир

Спустя 1 день, 9 часов, 5 минут, 51 секунда (5.07.2011 - 23:31) vagon написал(а):
Я знал, что кто-нибудь докопается до скобок! smile.gif)))
Просто человек работал не за миллион, поэтому код не вылизывал досконально. А может быть ему как и многим приятнее чтение кода со скобками.

Сайт - не файлообменник.

Из всего вышеописанного делаю такой вывод:
Т.е. если у меня на сайте много народу, то:
1. Не закрывая соединение можно превысить лимит допустимых открытых, сайт будет недоступен. А какой как правило лимит выставляют хостеры, и на какое время?

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

- Правильно?
Как вычислить, что же лучше в моем случае?

Спустя 30 минут, 54 секунды (6.07.2011 - 00:01) inpost написал(а):
vagon
irbis-team.com , MVC, закрывать после выполнения контроллеров, работающих с БД smile.gif

Спустя 9 часов, 21 минута, 15 секунд (6.07.2011 - 09:23) Krevedko написал(а):
я где-то видел, что нерекомендовали юзать скобки и причину говорили. вот только блин не могу найти это место.

Спустя 5 минут, 25 секунд (6.07.2011 - 09:28) bulgakov написал(а):
Цитата
я где-то видел, что нерекомендовали юзать скобки и причину говорили

Я как-то писал про свое отношение к скобкам, в теме было - require_once(), могу еще раз повториться, require, include это конструкции языка а скобки я привык видеть в функциях, поэтому и использую кавычки. Но это мое личное мнение, может быть кому-то удобнее использовать и скобки.

Спустя 1 минута, 11 секунд (6.07.2011 - 09:29) linker написал(а):
Делать mysql_close() в конце скрипта не имеет смысла, ибо PHP завершая работу скрипта сам произведёт закрытие всех соединений.

bulgakov
print() тоже являет конструкцией языка, однако очень часто используется со скобками. В мануале описания include(), заголовок выглядит как include(), в то же время для echo, заголовок остаётся echo. К тому же, если в подключаемом файле написать return 'значение';, то include(), require() ведут себя как функции.

1.php
echo require('2.php'); // Тут отобразится 2.php
2.php
return basename(__FILE__);

Спустя 12 минут, 6 секунд (6.07.2011 - 09:41) bulgakov написал(а):
Ну тут все зависит от контекста.

Спустя 3 дня, 11 часов, 22 минуты, 53 секунды (9.07.2011 - 21:04) vagon написал(а):
Итак, от require_once плавненько так перешли к любимым скобкам smile.gif Я лично их уже давно не использую, (после прочтения темы на irbis). Раз там пишут что не требуется, мол-де не нужно плодить избыточный код по причине его ненужности - будем писать по феншую. Но все же, сильно удивило то что гуру не сходятся во мнениях по поводу подключений к бд, чему и собственно была посвящена эта тема. Первый раз такое встречаю...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.