Ich versuche, den Hang mit benutzerdefinierten Session-Handler zum Speichern von Sitzungsdaten in einer MySQL-Datenbank zu bekommen. Allerdings habe ich immer die folgende Warnung erhalten:mysql_close(): geliefert Argument ist keine gültige MySQL-Link-Ressource
mysql_close(): supplied argument is not a valid MySQL-Link resource
Hier ist der Code ich verwende, die ich von here bekam:
function _open(){
global $_sess_db;
$_sess_db = mysql_connect("localhost", "root", "******");
if ($_sess_db) {
return mysql_select_db('style', $_sess_db);
}
return false;
}
function _close(){
global $_sess_db;
return mysql_close($_sess_db); //error happens here
}
Der vollständige Text der Fehlermeldung schließlich verweist auf die letzte " return mysql_close ($ _ sess_db); " Linie. Ich kann bestätigen, dass die mysql_connect-Information tatsächlich funktioniert, und ich habe auch den Rest der Session-Handler-Funktionen definiert.
Und falls es hilft, bekomme ich diese Fehler sofort beim Laden der Seite, ohne tatsächlich eine der Session-Handler-Funktionen aufzurufen, und ohne dass aktuelle Sitzungen geöffnet sind.
Wenn Sie nicht mehrere Datenbanken verwenden, müssen Sie außerdem möglicherweise nicht angeben, welche DB-Verbindung geschlossen werden soll, da die zuletzt geöffnete Verbindung automatisch geschlossen wird, wenn kein Argument übergeben wird. – dqhendricks
auch, non-persistente db-verbindungen automatisch am ende des skripts geschlossen, so dass die db-verbindung geschlossen werden kann abhängig von ihrem projekt nicht einmal benötigt werden. – dqhendricks
Ja, variabler Umfang war das Problem. Ich bekomme diesen Fehler nicht mehr. Nach dem Start der Sitzung versuche ich $ _SESSION ['uid'] = 4. Aber ich sehe nicht, dass dies in der Datenbank reflektiert wird. Da ich eine session_write-Funktion definiert habe, sollte diese benutzerdefinierte Funktion für $ _SESSION ['uid'] = ... verwendet werden, richtig? In diesem Fall wäre das Problem in meiner benutzerdefinierten Handler-Funktion? – maxedison