Verstehen Sie den Fehler „Warnung: mysqli_query() erwartet, dass Parameter 1 MySQLi ist, null angegeben in“
Bei Ihrem Versuch, eine benutzerdefinierte Datei zu erstellen CMS, Sie haben die folgende Fehlermeldung erhalten:
"Warnung: mysqli_query() erwartet Parameter 1 muss MySQLi sein, null angegeben in"
Ursache des Fehlers
Dieser Fehler weist darauf hin, dass die Funktion mysqli_query(), die SQL-Abfragen ausführt, ein MySQLi-Objekt erwartet als erster Parameter. In Ihrer getPosts()-Funktion übergeben Sie jedoch einen Nullwert anstelle eines MySQLi-Objekts.
Lösung
Die Lösung für dieses Problem besteht darin, sicherzustellen, dass die Das $con MySQLi-Objekt liegt im Bereich der getPosts()-Funktion. In Ihrem Code ist $con im globalen Bereich definiert, aber es ist innerhalb der Funktion nicht zugänglich.
Übergabe des MySQLi-Objekts als Abhängigkeit
Eine Möglichkeit dazu Die Adresse besteht darin, das MySQLi-Objekt als Abhängigkeit an die Funktion getPosts() zu übergeben. So können Sie es tun:
function getPosts(mysqli $con) { // etc }
Indem Sie das MySQLi-Objekt zu einem Parameter der Funktion machen, stellen Sie sicher, dass es im Gültigkeitsbereich der Funktion verfügbar ist und von mysqli_query() verwendet werden kann.
Zusätzliche Empfehlungen
Zusätzlich zur Lösung des Scoping-Problems sollten Sie Folgendes in Betracht ziehen Empfehlungen:
Hier ist ein Beispiel, wie man diese umsetzt Empfehlungen:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // throw exceptions $con=mysqli_connect("localhost","xxxx","xxxx","xxxxx"); if (!$con) { throw new Exception("Failed to connect to MySQL: " . mysqli_connect_error()); } getPosts($con);
Durch die Umsetzung dieser Empfehlungen können Sie die Robustheit und Zuverlässigkeit Ihres benutzerdefinierten CMS sicherstellen.
Das obige ist der detaillierte Inhalt vonWarum gibt „mysqli_query()' „Warnung: mysqli_query() erwartet, dass Parameter 1 MySQLi ist, null gegeben' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!