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