Heim > Backend-Entwicklung > PHP-Tutorial > Warum zeigt „mysql_fetch_array()' „erwartet, dass Parameter 1 eine Ressource ist' und wie kann ich das beheben?

Warum zeigt „mysql_fetch_array()' „erwartet, dass Parameter 1 eine Ressource ist' und wie kann ich das beheben?

Linda Hamilton
Freigeben: 2024-12-22 20:17:12
Original
605 Leute haben es durchsucht

Why Does `mysql_fetch_array()` Show

Verstehen des Fehlers „mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc... erwartet, dass Parameter 1 eine Ressource ist“

Wenn dieser Fehler auftritt, weist das darauf hin, dass einer der Datenbankfehler vorliegt Abruffunktionen (z. B. mysql_fetch_array(), mysql_fetch_assoc() usw.) werden mit einem ungültigen Parameter aufgerufen. Konkret sollte der Parameter eine Ressource sein, die eine Datenbank-Ergebnismenge darstellt, aber es ist stattdessen ein boolescher Wert.

Die Ursache des Fehlers

Die Grundursache dafür Bei einem Fehler handelt es sich in der Regel um eine fehlgeschlagene Datenbankabfrage. Wenn eine Abfrage fehlschlägt, geben die mysql_*-Funktionen/-Methoden „false“ zurück, was als boolescher Wert fehlinterpretiert werden kann. Wenn Sie anschließend eine Abruffunktion mit dem falschen Ergebnis aufrufen, kommt es daher zu diesem Fehler.

Fehler beheben

Um dieses Problem zu beheben, müssen Sie Folgendes tun Befolgen Sie diese Schritte:

  1. Überprüfen Sie das Abfrageergebnis:Stellen Sie sicher, dass die Der Aufruf von mysql_query() gibt bei Überprüfung seines Ergebnisses nicht „false“ zurück.
  2. Abfragefehler behandeln: Wenn die Abfrage fehlschlägt, lösen Sie einen Fehler aus oder behandeln Sie ihn entsprechend.
  3. Stellen Sie sicher, dass die Parameter korrekt sind: Übergeben Sie die richtige Ergebnisressource an die Abruffunktion und nicht den booleschen Wert, der aus dem Fehler resultierte Abfrage.

Beispiel

Betrachten Sie den folgenden Code:

$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '$username'");

if($result === FALSE) {
    trigger_error(mysql_error(), E_USER_ERROR);
}

while($row = mysql_fetch_array($result)) {
    echo $row['FirstName'];
}
Nach dem Login kopieren

In diesem Beispiel überprüfen wir zunächst das Ergebnis von mysql_query( ) und lösen einen Fehler aus, wenn die Abfrage fehlschlägt. Dann übergeben wir die Ressource $result korrekt an die Funktion mysql_fetch_array(). Dadurch wird sichergestellt, dass der richtige Parameter verwendet wird und das Auftreten des Fehlers verhindert wird.

Das obige ist der detaillierte Inhalt vonWarum zeigt „mysql_fetch_array()' „erwartet, dass Parameter 1 eine Ressource ist' und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage