Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mysql connect - jednorazowo, czy przy każdym zapytaniu?
Forum PHP.pl > Forum > Bazy danych > MySQL
zephyr7
Mam takie pytanie:

powiedzmy, że jest sobie klasa do obsługi zapytań MySQL (metody, np.: get_all($table), field($table,$field,$id)...., itp.)

Jak jest wydajniej:

- czy łączyć się i rozłączać z serverem mysql za każdym wywołaniem metody, np.

public function get_all($table);{
$this->db->connect();
....
mysql_close();
}

- czy może lepiej utworzyć połączenie zaraz na starcie, np. przed innnymi klasami i pozostawić je otwarte przez cały czas działania programu?
wookieb
A jak chcesz kupić 20 produktów w sklepie to 20 razy chodzisz do sklepu po 1 produkt?
GwynBleidD
Skrypty PHP mają to do siebie, że wywołują się stosunkowo krótko, raczej nie ma skryptów które stałyby online przez nawet kilka minut, także raczej jest lepiej raz otworzyć na początku skryptu połączenie a później na końcu skryptu je zamykać.

Zawsze namawiam do korzystania z klasy PDO, zamiast funkcji mysql_*, gdyż ta klasa jest bardziej bezpieczna (jeśli się używa bindParam i bindValue zamiast wklejania parametrów do łańcuchów znakowych. Możesz również za jej pośrednictwem otworzyć więcej niezależnych połączeń (mysql_connect zastępuje poprzednie połączenia).

Się rozgadałem troszkę biggrin.gif
wookieb
Cytat(GwynBleidD @ 1.01.2011, 22:21:50 ) *
(mysql_connect zastępuje poprzednie połączenia).

Mylisz się.
http://pl.php.net/mysql_query i spójrz na drugi parametr.

GwynBleidD
A, mój błąd smile.gif ale i tak namawiam do PDO (wygodniej tworzyć kilka połączeń biggrin.gif)
wookieb
Cytat(GwynBleidD @ 1.01.2011, 23:04:50 ) *
wygodniej tworzyć kilka połączeń biggrin.gif

To bezapelacyjnie jest już prawda 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.