Die Fehlermeldung „mysqli::query(): Konnte nicht abgerufen werden mysqli in Zeile 43“ weist auf ein Verbindungsproblem mit MySQL hin Datenbank.
Das erwähnte Codesegment umfasst eine Verbindungsdatei („inc_LadleDB.php“) und eine Klasse („EventCalendar“), die mit der Datenbank interagiert. Hier ist der relevante Code:
// Connection file $DBConnect = @new mysqli("localhost", "root@localhost", NULL, "Ladle"); // Class constructor function __construct() { include("inc_LadleDB.php"); $this->DBConnect = $DBConnect; } // Class destructor function __destruct() { if (!$this->DBConnect->connect_error) { $this->DBConnect->close(); } }
Der Fehler entsteht dadurch, dass die Datenbankverbindung vorzeitig geschlossen wird, insbesondere in der Destruktormethode „__destruct()“. Wenn das Objekt zerstört wird, wird die Datenbankverbindung geschlossen, aber nachfolgende Abfragen versuchen weiterhin auszuführen, was zu dem Fehler führt.
Um das Problem zu beheben, stellen Sie sicher, dass die Die Datenbankverbindung bleibt während der Ausführung aller Abfragen geöffnet. Eine mögliche Lösung besteht darin, die „close()“-Anweisung aus dem Destruktor zu entfernen. Beachten Sie die folgende Änderung:
// Class destructor function __destruct() { // Do not close the connection here }
Bedenken Sie, dass die Methode „__destruct()“ automatisch aufgerufen wird, wenn ein Objekt zerstört wird, sodass das Schließen der Verbindung dort andernfalls zu Fehlern führen kann Abfragen oder Datenbankoperationen werden noch ausgeführt.
Das obige ist der detaillierte Inhalt vonWarum wirft mein MySQLi-Code die Fehlermeldung „mysqli::query(): Couldn't fetch mysqli'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!