Avertissement PHP : mysql_free_result() s'attend à ce que le paramètre 1 soit une solution de ressource
Lorsque vous utilisez PHP pour vous connecter à la base de données MySQL, l'ensemble de résultats obtenu en exécutant l'instruction de requête doit être libéré à l'aide de la fonction mysql_free_result() pour éviter les fuites de mémoire. Mais parfois nous rencontrons ce message d'erreur : Avertissement PHP : mysql_free_result() s'attend à ce que le paramètre 1 soit une ressource. Quel est le problème ? Comment le résoudre ?
Analysons d'abord la signification de ce message d'erreur : mysql_free_result() s'attend à ce que le premier paramètre transmis soit une valeur de type de ressource. Quel est le type de ressource ? En PHP, l'utilisation de la fonction mysql_query() pour exécuter une instruction de requête renverra une valeur du type de ressource du jeu de résultats. En d'autres termes, la valeur de retour de la fonction mysql_query(), qui est la valeur du type de ressource du jeu de résultats, doit être transmise dans le premier paramètre transmis à la fonction mysql_free_result().
Si nous rencontrons ce message d'erreur, cela signifie que le paramètre correct n'est pas passé dans le premier paramètre passé dans la fonction mysql_free_result(). Ce paramètre devrait en fait être la valeur du type de ressource du jeu de résultats renvoyé par la fonction mysql_query(). . Ce message d'erreur nous rappelle donc qu'il faut vérifier si la fonction mysql_query() est utilisée correctement dans le code et confirmer que sa valeur de retour est bien une valeur de type ressource.
Pour résoudre ce problème, nous devons partir de deux aspects : l'un consiste à vérifier le code et l'autre est de comprendre les spécifications d'utilisation de la fonction mysql_query().
2.1 Vérifier le code
Lors de la vérification du code, nous devons trouver la fonction mysql_query() et la fonction mysql_free_result(), et si les paramètres transmis entre ces deux fonctions sont corrects. S'il y a un problème avec les paramètres transmis, une erreur sera signalée. Nous devons confirmer les points suivants dans le code :
S'il n'y a aucun problème avec les points ci-dessus, alors il est très probable que la ressource du jeu de résultats renvoyée par la fonction mysql_query() soit invalide. À ce stade, nous devons observer attentivement les spécifications d'utilisation de mysql_query(). fonction.
2.2 Comprendre les spécifications d'utilisation de la fonction mysql_query()
La première chose à noter est que la fonction mysql_query() est obsolète après PHP 5.5.0 et supprimée après PHP 7.0.0. Il est actuellement recommandé d'utiliser à la place la fonction mysqli_query() ou les fonctions préparer() et exécuter() de PDO. Par conséquent, nous devons être prudents lorsque nous utilisons la fonction mysql_query() pour essayer d'éviter les problèmes, ou utiliser la fonction mysqli_query() plus sûre et plus stable ou les fonctions préparer() et exécuter() de PDO.
Deuxièmement, il convient de noter que la valeur du type de ressource du jeu de résultats renvoyée par la fonction mysql_query() n'est valide que lorsque la fonction est appelée, et seulement lorsque l'instruction de requête n'est pas une instruction SELECT, une valeur de type non-ressource sera être restitué. Par conséquent, nous devons confirmer si la fonction mysql_query() est utilisée correctement dans le code et vérifier si la valeur renvoyée est une valeur de type ressource.
Enfin, ce que vous devez savoir, c'est que la valeur du type de ressource du jeu de résultats renvoyé par la fonction mysql_query() sera automatiquement libérée tant que la fonction mysql_query() sera exécutée. Par conséquent, si nous exécutons la fonction mysql_free_result() immédiatement après que la fonction mysql_query() renvoie le jeu de résultats, une erreur de type de paramètre se produira.
En résumé, afin d'éviter l'erreur PHP Warning : mysql_free_result() attend que le paramètre 1 soit une ressource, nous devons faire attention aux points suivants lors de l'utilisation de la fonction mysql_query() :
En bref, lorsque vous utilisez PHP pour vous connecter à la base de données MySQL , nous devons veiller au respect des spécifications et éviter les erreurs. Assurer l'exactitude et la stabilité du code.
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!