Maison  >  Article  >  développement back-end  >  Avertissement PHP : mysql_fetch_assoc() s'attend à ce que le paramètre 1 soit une solution de ressource

Avertissement PHP : mysql_fetch_assoc() s'attend à ce que le paramètre 1 soit une solution de ressource

王林
王林original
2023-06-22 16:19:441568parcourir

Dans le développement PHP, la base de données MySQL est souvent utilisée. Mais parfois, le message d'erreur suivant apparaît lors de l'utilisation de mysql_fetch_assoc() : PHP Attention : mysql_fetch_assoc() s'attend à ce que le paramètre 1 soit une ressource.

Cette erreur est très courante, mais elle peut causer beaucoup de confusion pour les débutants, car elle n'est pas tout à fait claire. quelles sont les causes de cette erreur et comment la corriger.

Cet article présentera en détail la solution à PHP Attention : mysql_fetch_assoc() s'attend à ce que le paramètre 1 soit une ressource.

1. Cause de l'erreur

Expliquons d'abord pourquoi cette erreur se produit. Cette erreur est causée par des paramètres incorrects de la fonction mysql_fetch_assoc().

La fonction de la fonction mysql_fetch_assoc() est de retirer les données de l'ensemble de résultats et de les enregistrer dans un tableau associatif. Mais si les paramètres de la fonction sont incorrects, par exemple si le paramètre n'est pas une ressource de lien valide, cette erreur sera générée.

2. Solution

La façon de résoudre cette erreur est en fait très simple. Il vous suffit de vérifier si la valeur de retour de la fonction mysql_query() est une ressource de lien valide.

Ce qui suit est un exemple de code simple :

$con = mysql_connect("localhost","username","password");
if (!$con)
{
   die('Could not connect: ' . mysql_error());
}

mysql_select_db("database", $con);

$result = mysql_query("SELECT * FROM table");

if (!$result) {
    die('Invalid query: ' . mysql_error());
}

while($row = mysql_fetch_assoc($result))
{
  echo $row['column1'] . " " . $row['column2'];
}

mysql_close($con);

Dans le code ci-dessus, utilisez d'abord la fonction mysql_connect() pour vous connecter à la base de données. Si la connexion réussit, sélectionnez la base de données. Utilisez ensuite la fonction mysql_query() pour exécuter l'instruction de requête et renvoyer le jeu de résultats.

Utilisez ensuite une instruction if pour vérifier si la valeur de retour de mysql_query() est fausse. S'il est faux, cela signifie que l'exécution de la requête a échoué, vous pouvez imprimer le message d'erreur et quitter le programme.

Si la requête est exécutée avec succès, utilisez la fonction mysql_fetch_assoc() pour récupérer les données dans le jeu de résultats et les stocker dans le tableau associatif, et enfin fermez la connexion mysql.

3. Autres notes

En plus de vérifier la valeur de retour de mysql_query(), il y a quelques autres notes.

  1. Essayez d'utiliser les extensions mysqli ou PDO

L'extension mysql est officiellement obsolète bien qu'elle puisse toujours être utilisée, elle peut être complètement supprimée dans les futures versions de PHP. Par conséquent, il est recommandé d'utiliser des extensions mysqli ou PDO pour fonctionner. Base de données MySQL.

  1. Faites attention au format d'écriture de l'instruction SQL

Lorsqu'il y a une erreur dans l'instruction de requête, il peut également y avoir des problèmes avec les résultats renvoyés par la fonction mysql_query(), empêchant la fonction mysql_fetch_assoc() de fonctionner correctement . Par conséquent, vous devez faire attention au format d’écriture des instructions SQL.

  1. Faites attention aux autorisations de la base de données

Si la fonction mysql_query() ne trouve aucune donnée lors de l'exécution de l'instruction de requête, elle renverra également une valeur fausse, ce qui déclenchera une erreur de la fonction mysql_fetch_assoc(). À ce stade, vous pouvez vérifier si l'utilisateur de la base de données dispose des autorisations de lecture dans la base de données connectée et d'autres problèmes.

4. Résumé

Ce qui précède est la solution à l'avertissement PHP : mysql_fetch_assoc() s'attend à ce que le paramètre 1 soit une ressource. N'oubliez pas que seul le passage de paramètres incorrects peut empêcher la fonction de fonctionner correctement, donc vérifier si la valeur de retour de la fonction mysql_query() est une ressource de lien valide est la clé pour résoudre ce problème. Dans le même temps, il est également très important d'utiliser les extensions mysqli ou PDO et de faire attention au format d'écriture des instructions SQL et aux autorisations de la base de données.

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!

Déclaration:
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