Heim > Backend-Entwicklung > PHP-Tutorial > Warum geben MySQL-Abruffunktionen „erwartet, dass Parameter 1 eine Ressource ist' zurück?

Warum geben MySQL-Abruffunktionen „erwartet, dass Parameter 1 eine Ressource ist' zurück?

Mary-Kate Olsen
Freigeben: 2024-12-23 03:02:35
Original
109 Leute haben es durchsucht

Why Do MySQL Fetch Functions Return

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'];
}
?>
Nach dem Login kopieren

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!

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