Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zakończenie połączenia z bazą danych.
Forum PHP.pl > Forum > PHP
Mikz
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?
l0ud
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).
Mikz
Wow, super, wielkie dzięki za błyskawiczną odpowiedź smile.gif.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.