Форум: "Прочее";
Текущий архив: 2010.09.19;
Скачать: [xml.tar.bz2];
ВнизPHP: когда закрывать соединение с базой Найти похожие ветки
← →
pasha_golub © (2010-06-23 10:34) [0]Два вопроса.
1.
mysql_query("ЫУДУСЕ ....", $link) or die("Query failed");
mysql_close($link);
Будет ли выполнен mysql_close?
2.
function foo()
{
...
return mysql_affected_rows($link);
mysql_close($link);
}
А тут?
← →
12 © (2010-06-23 10:45) [1]or die
вроде сам php интерпретатор все должен закрыть
из хелпа
При вызове return исполнение пользовательской функции прерывается
а при выходе из облвидимости вроде сам php интерпретатор все должен закрыть
← →
pasha_golub © (2010-06-23 10:47) [2]То что он сам все поубивает мне известно. Надо просто разложить в мозгу по полочкам. Бо в ПХП есть еще так называемые shutdown functions.
← →
wicked © (2010-06-23 11:47) [3]
> Бо в ПХП есть еще так называемые shutdown functions.
shutdown functions используются для того, чтоб прицепить кусок кода, который должен выполниться всегда, когда завершается скрипт, не зависимо от того, завершается ли он в штатном режиме (текст программы закончился) или во внештатном (например, die)
удобно, например, для замера скорости выполнения скрипта - в начале замерили timestamp, положили в глобальную переменную и зарегистрировали функцию
а функция, при завершении скрипта, посчитала, сколько он работал и положила себе куда то в файл
а ежели ты хошь закрывать соединение к базе с помощью shutdown functions, то переменную коннекшена нужно держать в глобальной переменной, что не всегда есть гуд
уж лучше тогда ОО обертки, с деструкторами, которые сами и закроют
← →
Омлет © (2010-06-23 11:54) [4]> pasha_golub © (23.06.10 10:34)
> 1. Будет ли выполнен mysql_close?
Будет, только если не возникнет исключения в mysql_query или других предшествующих строках.
> 2. А тут?
Не будет. После return ничего не будет.
Гарантированно закрыть можно как-то так:
$connection = mysql_connect(...);
if ($connection !== false) {
try {
...
mysql_query(...);
mysql_query(...);
mysql_query(...);
...
mysql_close($connection); // закрыть штатно
}
catch (Exception $e) {
mysql_close($connection); // закрыть в любом случае
}
}
← →
aka (2010-06-24 18:01) [5]
> pasha_golub © (23.06.10 10:34)
Закрывать нужно в любом случае, зачем создавать много коннектов, а если пользователей куча?
Завязаться нужно на index.php?page=[page1,page2....] . В общих чертах:
1) коннект
2) включить нужный кусок кода require_once("script_folder/".$_GET["page"].".php");
3) закрытие коннекта
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.09.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c