Comprendre l'erreur "mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc... s'attend à ce que le paramètre 1 soit une ressource"
Lorsque vous rencontrez cette erreur, cela indique que l'une des fonctions de récupération de la base de données (par exemple, mysql_fetch_array(), mysql_fetch_assoc(), etc.) est appelé avec un paramètre non valide. Plus précisément, le paramètre doit être une ressource représentant un jeu de résultats de base de données, mais il s'agit plutôt d'une valeur booléenne.
La cause de l'erreur
La cause première de ce problème L'erreur est généralement un échec de requête de base de données. Lorsqu'une requête échoue, les fonctions/méthodes mysql_* renvoient false, ce qui peut être interprété à tort comme une valeur booléenne. Par conséquent, lorsque vous appelez par la suite une fonction de récupération avec un résultat faux, cela conduit à cette erreur.
Correction de l'erreur
Pour résoudre ce problème, vous devez suivez ces étapes :
Exemple
Considérez le code suivant :
$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']; }
Dans cet exemple, nous vérifions d'abord le résultat de mysql_query( ) et déclenche une erreur si la requête échoue. Ensuite, nous passons correctement la ressource $result à la fonction mysql_fetch_array(). Cela garantit que le paramètre approprié est utilisé, empêchant ainsi l'erreur de se produire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!