Heim >Backend-Entwicklung >PHP-Tutorial >Warum gibt „mysqli_query()' den Fehler „Warnung: mysqli_query() erwartet, dass Parameter 1 mysqli ist, null angegeben' zurück?

Warum gibt „mysqli_query()' den Fehler „Warnung: mysqli_query() erwartet, dass Parameter 1 mysqli ist, null angegeben' zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-05 00:53:14258Durchsuche

Why does `mysqli_query()` return a

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:

  1. **Globalisieren Sie die $con-Variable:** Sie können die $con-Variable in getPosts() global machen, indem Sie die globale $con; Erklärung. Dadurch wird PHP angewiesen, außerhalb der Funktion nach $con zu suchen und es innerhalb von getPosts() zugänglich zu machen.
  2. **Übergeben Sie die $con-Variable als Parameter:** Ein besserer Ansatz besteht darin, das $con-Objekt zu übergeben als Parameter für die Funktion getPosts(). Dadurch wird sichergestellt, dass getPosts() direkten Zugriff auf die Datenbankverbindung hat, sodass kein globaler Geltungsbereich erforderlich ist.

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!

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