Comprendre l'erreur de ressource attendue "mysql_fetch_..."
Lors de l'utilisation de fonctions MySQL telles que mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_row () et mysql_num_rows, vous pouvez rencontrer 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."
L'erreur indique que le premier paramètre de la fonction n'est pas une ressource de base de données valide. Une ressource de base de données est généralement obtenue à partir d'un appel réussi à mysql_query(). Si mysql_query() ne parvient pas à exécuter la requête, il renvoie false.
Résoudre le problème
Pour résoudre cette erreur, vous devez vous assurer que la requête est exécutée avec succès avant de transmettre la ressource de résultat aux fonctions de récupération. Cela implique de vérifier la valeur de retour de mysql_query() et de gérer la condition d'erreur en conséquence.
Exemple pour mysql_extension
<?php $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, mysql_real_escape_string() prépare le chaîne de nom d'utilisateur pour la requête afin d'empêcher les injections SQL. Nous vérifions la valeur de retour de mysql_query() et déclenchons une erreur utilisateur si la requête échoue. Si la requête réussit, nous pouvons utiliser en toute sécurité la ressource résultat dans la fonction mysql_fetch_array().
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!