Maison >base de données >tutoriel mysql >Pourquoi est-ce que j'obtiens l'erreur « mysql_fetch_array() s'attend à ce que le paramètre 1 soit une ressource, booléen donné » en PHP ?

Pourquoi est-ce que j'obtiens l'erreur « mysql_fetch_array() s'attend à ce que le paramètre 1 soit une ressource, booléen donné » en PHP ?

DDD
DDDoriginal
2024-12-22 06:05:09645parcourir

Why Am I Getting the

Message d'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, un booléen donné"

Cette erreur se produit lors de l'appel d'une fonction qui attend une ressource en premier paramètre, mais une valeur booléenne est transmise à la place. Dans ce cas précis, cela indique que la requête a échoué, entraînant le retour d'une valeur fausse.

Solution :

Pour résoudre ce problème, vérifiez le résultat de la Requête MySQL avant de la transmettre aux fonctions de récupération de données. Dans l'extension mysql_ de PHP, utilisez mysql_query() et testez sa valeur de retour. Si la requête échoue, vous pouvez gérer l'erreur en conséquence ou émettre un déclencheur.

Voici un exemple avec une gestion améliorée des erreurs :

<?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'];
}
?>

En utilisant mysql_real_escape_string() pour nettoyer les entrées utilisateur, vous peut également empêcher les attaques par injection SQL, qui peuvent être à l'origine d'un échec de requête.

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