Heim >Backend-Entwicklung >PHP-Tutorial >Warum gibt „mysqli_query()' den Fehler „Warnung: mysqli_query() erwartet, dass Parameter 1 mysqli ist, null angegeben' zurück?
Warnung: Verständnis des mysqli_query()-Parameterfehlers
Bei der Verwendung von mysqli_query() in PHP ist es wichtig sicherzustellen, dass der erste Parameter a ist gültiges MySQL-Objekt, das eine Datenbankverbindung darstellt. Wenn jedoch die Fehlermeldung „Warnung: mysqli_query() erwartet, dass Parameter 1 mysqli ist, null angegeben“ angezeigt wird, bedeutet dies, dass der erste an die Funktion übergebene Parameter kein mysqli-Objekt ist.
Untersuchen des Codes
In Ihrem bereitgestellten Code haben Sie eine Funktion namens getPosts(). Diese Funktion versucht, eine Datenbanktabelle namens Blog abzufragen. Beim mysqli_query()-Aufruf innerhalb von getPosts() wird der erste Parameter jedoch nicht explizit übergeben. Dadurch übernimmt PHP als ersten Parameter den Wert von $con, der außerhalb der Funktion deklariert wird. $con liegt jedoch nicht im Gültigkeitsbereich von getPosts() und gibt daher null zurück.
Fehler beheben
Um dieses Problem zu beheben, haben Sie zwei Möglichkeiten:
Beispiel:
function getPosts(mysqli $con) { // ... same code as before } // Connect to the database $con = mysqli_connect("localhost", "xxxx", "xxxx", "xxxxx"); // Call getPosts() with the connection as a parameter getPosts($con);
Zusätzliche Empfehlungen
Es ist außerdem ratsam, mögliche Fehler zu behandeln, die während des Datenbankbetriebs auftreten können. Sie können die Fehlerberichterstattung explizit wie folgt aktivieren:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // throw exceptions
Dadurch werden Ausnahmen ausgelöst, wenn Fehler auftreten, sodass Sie entsprechende Maßnahmen in Ihrem Code ergreifen können.
Das obige ist der detaillierte Inhalt vonWarum gibt „mysqli_query()' den Fehler „Warnung: mysqli_query() erwartet, dass Parameter 1 mysqli ist, null angegeben' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!