Mailinglisten-Archive |
ANGEL Harald schrieb: > Hi Liste! > > Hab mir gestern den Befehl mysql_close angeschaut und folgende Fragen dazu: > > Auf meiner Website bekomm ich oft die "Too many SQL-Connections" - Fehlermeldung (mehr als 150 gleichzeitige conns bei ~120 usern) > Die Scripts sind teilweise sehr lang und haben viele SQL-Statements drin... > Also, bringt die Verwendung des mysql_close-Befehls direkt nach dem mysql_query da möglicherweise Verbesserungen? > > Auf php.net steht: > mysql_close() schließt die Verbindung zum MySQL-Server, die mit der angegebenen Verbindungs-Kennung verknüpft ist. Wird die Verbindungs-Kennung nicht angegeben, wird die zuletzt geöffnete Verbindung geschlossen. > > Wenn ich da also dann keine Kennung angebe, wird dann MEINE letze Verbindung geschlossen oder könnte das eine SQL-Connection eines anderen Users sein? Die letzte Verbindung die in dem laufenden Script geöffnet wurde. Ein mysql_close() bringt aber nur dann was wenn das Script noch lange nach der letzten DB-Anfrage läuft, weil PHP mit ende des Scripts die Verbindung eh wieder schließt, wenn kein mysql_pconnect() verwendet wurde. Es könnte auch was bringen nicht grundsätzlich am Anfang des Scripts die DB-Verbindung aufzubauen sondern erst wenn sie gebraucht wird. Wenn man z.b. eine eigen Funktion hat für abfragen z.b. db_query() könnte man erst in dieser Funktione die Verbindung aufbauen. function db_query($query) { static $mysql_link = null; if ( null === $mysql_link ) { $mysql_link = mysql_connect(....); mysql_select_db(...); } ... return $result; } -- Sebastian Mendel www.sebastianmendel.de www.warzonez.de www.tekkno4u.de www.nofetish.com www.sf.net/projects/phpdatetime www.sf.net/projects/phptimesheet
php::bar PHP Wiki - Listenarchive