Heim >Backend-Entwicklung >PHP-Tutorial >Warum erhält meine Funktion „mysqli_query()' einen Nullwert anstelle eines MySQLi-Verbindungsobjekts?

Warum erhält meine Funktion „mysqli_query()' einen Nullwert anstelle eines MySQLi-Verbindungsobjekts?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-28 00:26:10828Durchsuche

Why Does My `mysqli_query()` Function Receive a Null Value Instead of a MySQLi Connection Object?

Verstehen Sie „Warnung: mysqli_query() erwartet, dass Parameter 1 mysqli ist, null angegeben in“

Bei Ihrer Suche nach einem benutzerdefinierten CMS , sind Sie möglicherweise auf die gefürchtete Fehlermeldung gestoßen: „Warnung: mysqli_query() erwartet Parameter 1.“ MySQLi, null angegeben. Dieses frustrierende Problem entsteht oft durch ein Missverständnis bezüglich des Umfangs von Variablen innerhalb von PHP-Funktionen.

Fehlerursache

Der Fehler deutet darauf hin, dass Ihre getPosts()-Funktion einen Versuch durchführt um auf die Variable $con zuzugreifen, die Ihr MySQLi-Verbindungsobjekt speichert, auf die jedoch im Rahmen dieser Funktion nicht zugegriffen werden kann. Dies liegt daran, dass $con außerhalb der Funktion getPosts() definiert ist.

Lösung: Übergeben der Verbindung als Abhängigkeit

Um dieses Problem zu beheben, müssen Sie übergeben Verbindungsobjekt zur getPosts()-Funktion als Abhängigkeit. Auf diese Weise kann die Funktion auf die Verbindung zugreifen und die erforderlichen Datenbankoperationen ausführen.

function getPosts(mysqli $con) {
    // Code to query the database using $con
}

Weitere Fehler verhindern

Um potenzielle Probleme zu minimieren, sollten Sie Folgendes in Betracht ziehen Code zur Behandlung von Verbindungsfehlern und zum Auslösen von Ausnahmen:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // throw exceptions
$con = mysqli_connect("localhost", "xxxx", "xxxx", "xxxxx");

getPosts($con);

Zusätzlich Tipps

  • Mysqli-Objekt direkt verwenden: Vermeiden Sie die Verwendung von mysqli_query() und entscheiden Sie sich direkt für die Methoden des Mysqli-Objekts, wie z. B. $con->query().
  • Ausnahmen behandeln: Denken Sie daran, die von der ausgelösten Ausnahmen zu behandeln mysqli-Objekt mithilfe von try...catch-Blöcken, um aussagekräftige Fehlermeldungen bereitzustellen.
  • Verbindungen entsorgen: Sobald Sie mit der Verbindung fertig sind, schließen Sie sie mit $con->close ()-Methode zum Freigeben von Ressourcen.

Das obige ist der detaillierte Inhalt vonWarum erhält meine Funktion „mysqli_query()' einen Nullwert anstelle eines MySQLi-Verbindungsobjekts?. 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