2009-07-08 9 views
0

Ich versuche, mysql Verbindung wieder zu verwenden. Daher habe ich eine globale Variable in der Klasse databasemanager.php, die eine Verbindung zurückgibt.MySQL-Verbindung wieder verwenden Problem

Das Problem ist irgendwie auf einer bestimmten Seite mysql führt auch vorherige Abfrage aus.

Es sieht so aus, als gäbe es noch eine übrig gebliebene Abfrage im Verbindungsobjekt, die ausgeführt wird, wenn die gleiche Verbindung wiederverwendet wird. Ist es möglich ? wie diese zu lösen ..

function getDBConnection(){ 
    global $conn; 
    if (!empty($conn)){ 
// echo $conn ; 
    return $conn; 
    } 
    $conn = mysql_connect($GLOBALS['HOSTNAME'],$GLOBALS['DBUSER'],$GLOBALS['DBPASS']); 

    if (!$conn) { 
    die('Could not connect: ' . mysql_error()); 
    } 

    mysql_select_db($GLOBALS['DBNAME'],$conn); 
    return $conn; 

}

Dieser wie Code lookslike

+1

Wir müssen sehen, wie Sie verbunden sind (welche Funktion und welche Parameter). Wiederverwendung der Verbindung auch über Anfragen oder in der gleichen Anfrage? –

+0

Haben Sie einen besonderen Grund, MySQL-Verbindungen wiederverwenden zu wollen? Sie sind normalerweise ziemlich leicht, so dass es nicht viel Sinn macht, sie wiederzuverwenden (es sei denn, Sie haben große Lasten oder laufen auf eingeschränkter Hardware). –

Antwort

1

Haben Sie in mysql_pconnect geschaut?

Nach der Dokumentation:

mysql_pconnect() verhält sich sehr ähnlich wie mysql_connect() mit zwei großen Unterschiede.

Zuerst beim Anschluss der Funktion würde zuerst versuchen, einen (persistent) Link zu finden, die mit den gleichen Hosts, Benutzername und Passwort bereits geöffnet ist. Wenn eine gefunden wird, wird eine ID zurückgegeben, anstatt eine neue Verbindung zu öffnen. Die Verbindung zum Server SQL wird nicht beendet, wenn die Ausführung des Skripts beendet wird. Stattdessen der Link bleibt offen für zukünftige Verwendung (mysql_close() wird nicht geschlossen Links von mysql_pconnect()) hergestellt.

Verwandte Themen