Maison > développement back-end > tutoriel php > Pourquoi `mysql_fetch_array()` affiche-t-il « s'attend à ce que le paramètre 1 soit une ressource » et comment puis-je y remédier ?

Pourquoi `mysql_fetch_array()` affiche-t-il « s'attend à ce que le paramètre 1 soit une ressource » et comment puis-je y remédier ?

Linda Hamilton
Libérer: 2024-12-22 20:17:12
original
564 Les gens l'ont consulté

Why Does `mysql_fetch_array()` Show

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 :

  1. Vérifiez le résultat de la requête : Vérifiez que l'appel mysql_query() le fait ne renvoie pas false en vérifiant son résultat.
  2. Gérer les échecs de requête : Si la requête échoue, déclenchez une erreur ou gérez-la de manière appropriée.
  3. Assurez-vous que le paramètre est correct. : Transmettez la ressource de résultat correcte à la fonction de récupération plutôt que la valeur booléenne résultant de l'échec requête.

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'];
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal