mysqli::query(): MySQL-Objekt bereits geschlossen oder MySQL-Fehler konnte nicht abgerufen werden
Problem
Beim Ausführen eines PHP-Skripts stoßen Sie auf Folgendes Fehler:
-
PHP 7: mysqli::query(): Konnte MySQL in [script_path] in Zeile [line_number] nicht abrufen
-
PHP 8: Nicht abgefangener Fehler: MySQL-Objekt ist bereits vorhanden geschlossen
Erklärung
Diese Fehler weisen darauf hin, dass Ihr PHP-Skript versucht, eine MySQL-Abfrage auszuführen, nachdem das MySQL-Verbindungsobjekt geschlossen wurde.
Lösung
Stellen Sie sicher, dass Ihr MySQL-Verbindungsobjekt noch aktiv ist, bevor Sie eines ausführen Abfragen.
// Check if the MySQL connection is open
if ($mysqli->connect_error) {
// Handle the connection error
} else {
// Execute the query
$result = $mysqli->query($query);
}
Nach dem Login kopieren
Mögliche Ursachen
-
Zu frühes Schließen der Verbindung: Stellen Sie sicher, dass Sie die MySQL-Verbindung erst dann schließen Abfragen wurden ausgeführt.
-
Destruktorprobleme: Vermeiden Sie das Schließen der MySQL-Verbindung im Destruktormethode (__destruct) einer Klasse, wenn noch Abfragen ausgeführt werden müssen.
-
Falsch deklarierte Verbindungsvariablen: Überprüfen Sie, ob die MySQL-Verbindungsvariable (in diesem Fall $mysqli) vorhanden ist im gesamten Skript korrekt deklariert und zugewiesen.
Zusätzlich Hinweise
- Im bereitgestellten Codeausschnitt für die Klasse EventCalendar wird die MySQL-Verbindung in der Destruktormethode (__destruct) geschlossen. Dies könnte ein Problem sein, wenn nach dem Aufruf des Destruktors noch Abfragen erforderlich sind.
- Stellen Sie sicher, dass Sie die richtige PHP-Version und MySQL-Erweiterung verwenden.
- Überprüfen Sie die MySQL-Serverprotokolle auf weitere Fehler Nachrichten.
Das obige ist der detaillierte Inhalt vonWarum gibt mein PHP-Skript den Fehler „mysqli::query(): MySQL Object bereits geschlossen oder Unable to Fetch MySQL Error' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!