Maison > développement back-end > tutoriel php > Pourquoi les fonctions de récupération MySQL renvoient-elles « s'attend à ce que le paramètre 1 soit une ressource » ?

Pourquoi les fonctions de récupération MySQL renvoient-elles « s'attend à ce que le paramètre 1 soit une ressource » ?

Mary-Kate Olsen
Libérer: 2024-12-23 03:02:35
original
134 Les gens l'ont consulté

Why Do MySQL Fetch Functions Return

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'];
}
?>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal