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);
}
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!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn