Maison > Article > base de données > Pourquoi mon script PHP lance-t-il « mysql_fetch_array() : le paramètre 1 devrait être une ressource » ?
mysql_fetch_array() : le paramètre 1 devrait être une ressource
Dans votre script PHP, vous rencontrez l'erreur "mysql_fetch_array() attend un paramètre 1 pour être une ressource. Cela indique que la fonction reçoit un type de paramètre incorrect.
Source de l'erreur
Le problème provient de la ligne suivante :
<code class="php">$result = mysql_query("SELECT * FROM student WHERE IDNO=".$_GET['id']);</code>
Cette ligne exécute une requête sur la base de données. Si la requête échoue ou s'il n'y a aucun résultat, la fonction renvoie une valeur booléenne, indiquant le succès ou l'échec de la requête. Cependant, la fonction mysql_fetch_array() attend une ressource comme premier paramètre, qui est le résultat d'une requête réussie.
Solution
Pour résoudre le problème, vous devez vérifiez la valeur de retour de mysql_query() pour vous assurer qu'il s'agit d'une ressource. Vous pouvez le faire en ajoutant une vérification d'erreur après la ligne de requête :
<code class="php">$result = mysql_query("SELECT * FROM student WHERE IDNO=".$_GET['id']); if (!$result) { die('Invalid query: ' . mysql_error()); }</code>
Cela affichera le message d'erreur et mettra fin au script si la requête échoue.
Considérations supplémentaires
En dehors de ce problème, il est recommandé d'utiliser les extensions MySQLi ou PDO améliorées pour l'interaction avec la base de données au lieu des fonctions obsolètes mysql_*. Ces extensions offrent des fonctionnalités de sécurité et de performances amélioré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!