![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
od pewnego czasu nurtuje mnie pewna kwestia zwiazana z bazami danych. Otóż załóżmy że mam klasę obsługującą bazę MySQL a w innych klasach z niej korzystam. W kazdej klasie nie jest przekazywany indentyfikator połączenia, w kazdej klasie tworzone jest nowe polączenie do bazy danych. Istotną sprawa przy tworzeniu aplikacji php jest szybkosć jej wykonywania, w takim przypadku kilka krotne nawiązywania połączenia z bazą danych mija się z celem. Nasunął mi się pomysł żeby za każdym razem nie tworzyc nowego polączenia $db = new MySQL; tylko je przekazywać, i tu pojawia sie problem w jaki sposób przekazywać połączenie? Czy lepiej w innych klasach przekazywać zmienną z obiektem MySQL w funkcji construct($mysql = null) czy może przekazywać identyfikatorem połączenia w zmiennej $GLOBALS? Głównie chodzi o to żeby zapobiec tworzeniu nowych połączeń przy jednym wywołaniu strony, i jak najlepiej to zrobić? Macie pomysly? W jaki sposób wy to rozwiązujecie. Zapraszam do dyskusji (IMG:http://forum.php.pl/style_emoticons/default/dry.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 25 Dołączył: 23.07.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
I to mi zapewni że przy każdym wywołaniu klasy new Klasa(); nie będzie tworzyła sie nowa tylko przekazywała obiekt?
czy wywołuje obiekt::GetInstace(); ? Ten post edytował eai 30.04.2007, 14:40:31 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 25 Dołączył: 23.07.2004 Ostrzeżenie: (0%) ![]() ![]() |
Wywołujesz obiekt::GetInstace() bo jak Singleton zakłada konstruktor jest prywatny wtedy new Klasa(); zgłosi error
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To już nie lepiej identyfikator połączenia trzymać w zmiennej statycznej?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Statycznie bedzie o wiele wygodniej. Ew. Mozesz utworzyc osobną klase która łaczy sie z bazą i utrzymuje (zwraca) połączenie.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 13.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
możesz skorzystać również z mysql_pconnect. z wywołaniem mysql_pclose na końcu aplikacji
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 15:56 |