Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.004 c
15-1277065796
Юрий
2010-06-21 00:29
2010.09.19
С днем рождения ! 21 июня 2010 понедельник


15-1277197697
ixen
2010-06-22 13:08
2010.09.19
Клиент delphimaster


15-1277287798
картман
2010-06-23 14:09
2010.09.19
Кто об этом писал?


15-1277317461
TStas
2010-06-23 22:24
2010.09.19
Почему с одного компа получается писать на форум, а с другого нет


15-1277435535
MonoLife
2010-06-25 07:12
2010.09.19
Ищу песню.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский