Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
2-1276942888
TStas
2010-06-19 14:21
2010.09.19
Засечь вставку флешки


2-1277491678
New555
2010-06-25 22:47
2010.09.19
if Key = VK_F1 then


3-1245325959
vanatage10
2009-06-18 15:52
2010.09.19
Как обновить значение в DBgrid измененное в другой программе


2-1277283818
12
2010-06-23 13:03
2010.09.19
Научите работать, как работает ShowMessageFmt


2-1277246482
Отшельник
2010-06-23 02:41
2010.09.19
Как узнать, подключена ли другая программа к серверу?




   Наверх