Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zakończenie połączenia z bazą danych.
Mikz
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 3
Dołączył: 7.12.2007

Ostrzeżenie: (0%)
-----


Tworzę coś w rodzaju frameworka/silnika, jakkolwiek by tego nie określić.
Używa się go po prostu wczytując interfejs za pomocą require_once.

No i mam schodki, ponieważ ten skrypt używa połączenia z bazą danych. Żeby zaoszczędzić czas, skrypt łączy się z bazą jeśli nie wykryje istniejącego połączenia i wykonuje kolejne zapytania nie rozłączając się po każdym.
Problem w tym, że nie mam zielonego pojęcia jak wykryć kiedy skrypt który będzie tego silnika używał zakończy swoje działanie, czyli de facto nie mam pojęcia kiedy rozłączyć się z bazą. Połączenia stałe raczej nie wchodzą tutaj w grę.

Klasa obsługująca bazę wygląda mniej więcej tak:

Kod
class data
{

     private static $connId;

     private static function connect()
     {

         self::$connId = mysql_connect(server, user, pass);
         mysql_select_db(baza, self::$connId);

     }

     public static function disconnect()
     {

         if (self::$connId) mysql_close(self::$connId);

     }

     public static function getObject($id)
     {
        
         if (!self::$connId) self::connect();
         //Tutaj zapytania i return
        
     }

}


Kiedy mam użyć funkcji disconnect()?
Może jest jakaś opcja rozłączenia z bazą na koniec wykonywania skryptu?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
l0ud
post
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


PHP domyślnie kończy połączenie z bazą po ukończeniu skryptu. Wyjątkiem jest użycie funkcji mysql_pconnect(). Sam stosujesz mysql_connect, więc połączenie zostanie zakończone. Nigdy nie ma sensu ręcznego rozłączania się z bazą.

...a jak już byś bardzo chciał, możesz umieścić mysql_close() w destruktorze (wywoła się na końcu skryptu).
Go to the top of the page
+Quote Post
Mikz
post
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 3
Dołączył: 7.12.2007

Ostrzeżenie: (0%)
-----


Wow, super, wielkie dzięki za błyskawiczną odpowiedź (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 19:43