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ą:
<? $dbhost = "localhost"; $dbuname = "qqq"; $dbpass = "qqq"; $dbname = "_wwww"; ?>
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 .
<?php function lacz_bd() { if (!$wynik) return false; return false; return $wynik; } ?>
Wywołanie w przykładowej funkcji:
<?php function pobierz_rekord_artykulu($artykul) { $lacz = lacz_bd(); $sql = "select * from artykuly where id = '$artykul'"; } ?>
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