Verstehen des „mysql_fetch_...“ Erwartens eines Ressourcenfehlers
Bei Verwendung von MySQL-Funktionen wie mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_row () und mysql_num_rows können Ihnen begegnen der Fehler: „mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc... erwartet, dass Parameter 1 eine Ressource ist.“
Der Fehler zeigt an, dass der erste Parameter der Funktion keine gültige Datenbank ist Ressource. Eine Datenbankressource wird normalerweise durch einen erfolgreichen Aufruf von mysql_query() abgerufen. Wenn mysql_query() die Abfrage nicht ausführen kann, wird „false“ zurückgegeben.
Behebung des Problems
Um diesen Fehler zu beheben, müssen Sie sicherstellen, dass die Abfrage erfolgreich ausgeführt wird bevor die Ergebnisressource an die Abruffunktionen übergeben wird. Dazu gehört die Überprüfung des Rückgabewerts von mysql_query() und die entsprechende Behandlung der Fehlerbedingung.
Beispiel für mysql_extension
<?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']; } ?>
In diesem Beispiel bereitet mysql_real_escape_string() die vor Benutzername-Zeichenfolge für die Abfrage, um SQL-Injections zu verhindern. Wir überprüfen den Rückgabewert von mysql_query() und lösen einen Benutzerfehler aus, wenn die Abfrage fehlschlägt. Wenn die Abfrage erfolgreich ist, können wir die Ergebnisressource sicher in der Funktion mysql_fetch_array() verwenden.
Das obige ist der detaillierte Inhalt vonWarum geben MySQL-Abruffunktionen „erwartet, dass Parameter 1 eine Ressource ist' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!