Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich in PHP den Fehler „mysql_fetch_array() erwartet, dass Parameter 1 eine Ressource ist, boolescher Wert angegeben'?
Fehlermeldung: „mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc... erwartet, dass Parameter 1 eine Ressource ist, boolescher Wert gegeben“
Dieser Fehler tritt auf, wenn eine Funktion aufgerufen wird erwartet als ersten Parameter eine Ressource, stattdessen wird jedoch ein boolescher Wert übergeben. In diesem speziellen Fall weist dies darauf hin, dass die Abfrage fehlgeschlagen ist und ein falscher Wert zurückgegeben wurde.
Lösung:
Um dieses Problem zu beheben, überprüfen Sie das Ergebnis von MySQL-Abfrage, bevor sie an die Datenabruffunktionen übergeben wird. Verwenden Sie in der mysql_-Erweiterung von PHP mysql_query() und testen Sie den Rückgabewert. Wenn die Abfrage fehlschlägt, können Sie den Fehler entsprechend behandeln oder einen Auslöser ausgeben.
Hier ist ein Beispiel mit verbesserter Fehlerbehandlung:
<?php $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']; } ?>
Durch die Verwendung von mysql_real_escape_string() zur Bereinigung von Benutzereingaben können Sie kann auch SQL-Injection-Angriffe verhindern, die eine Ursache für Abfragefehler sein können.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in PHP den Fehler „mysql_fetch_array() erwartet, dass Parameter 1 eine Ressource ist, boolescher Wert angegeben'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!