![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 28.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam dość obszerny systemik w php. Przy niektórych wywołaniach wykonywanych jest bardzo wiele funkcji jednocześnie. Do tej pory w każdej funkcji includuję plik connect.php z poniższą zawartoscią:
Jest to oczywiście mało wydajne. Jak można to zmienić? Pomysł 1: Do każdej funkcji przekazywać jako parametr zmienną $conn. Skuteczne ale mało praktyczne w mojej sytuacji bo nie chcę zmieniać parametrów we wszystkich funkcjach. Dodatkowo w większych systemach nie spotkałem raczej takiego rozwiązania. Pomysł 2: Ustanowienie zmiennej $conn jako globalnej i chyba nie trzeba będzie includować connect.oho do wszystkich funkcji aby dzialal mysql. Najwygodniejsze rozwiązanie, jednak nie wiem jak się ma to z bezpieczeństwem. Pomysł 3: Połaczenie jest umieszczone w funkcji .
Wywołanie w przykładowej funkcji:
W tym sposobie nie trzeba się martwić o wciąganie połączenia jako parametru. Ta funkcja jest widoczna w innych funkcjach jednak obawiam się że z każdym wywołaniem funkcji lacz_bd() nawiązywane jest połączenie z mysql. Jesli wykonywanych jest np 30 różnych funkcji działających na bazie to jest nawiązywanych tyle samo połączeń. Czy w pomysle 2 jest jedno nawiązanie połączenia czy nawiązywane jest ono w każdej funkcji posiadającej jakieś zapytanie SQL? Wiem że można użyć mysql_pconnect jednak szukam rozwiązania/zasady tworzenia połączenia z bazą. Funkcja mysql_pconnect nieraz jest wyłączona na serwerze i działa tylko z php działającym jako moduł. Jak można rozwiązać ten problem? ednet ![]() ~mike_mech |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Napisz sobie funkcję napisz sobie funkcję rozlacz, w któerj bedziesz zamykał połączenie z bazą danych i już.
Najlepiej jak napiszesz klasę odpowiedzialną za operacje na bazie danych i za jej pomocą bedziesz się łączył z bazą danych, wyciągał informacje oraz zamykał połączenie. -------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 28.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(batman @ 2005-10-27 21:52:05) Najlepiej jak napiszesz klasę odpowiedzialną za operacje na bazie danych i za jej pomocą bedziesz się łączył z bazą danych, wyciągał informacje oraz zamykał połączenie. A który z tych 3 pomysłów najbardziej Ci by odpowiadał? ednet |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 08:52 |