Maison  >  Article  >  développement back-end  >  Avertissement PHP : mysql_num_rows() attend une solution de paramètre

Avertissement PHP : mysql_num_rows() attend une solution de paramètre

PHPz
PHPzoriginal
2023-06-24 22:07:431638parcourir

PHP est un langage de script open source largement utilisé pour le développement Web, où de nombreuses applications Web (telles que WordPress) s'appuient sur la base de données MySQL pour stocker et récupérer des données. Cependant, lors de l'utilisation de la fonction mysql_num_rows(), l'avertissement suivant apparaît parfois :

PHP Attention : mysql_num_rows() s'attend à ce que le paramètre 1 soit une ressource, booléen donné dans ... #Dans cet article, nous allons discutez des causes de ce problème et de la manière de le résoudre.

Qu'est-ce que la fonction mysql_num_rows() ? La fonction

mysql_num_rows() est utilisée pour obtenir le nombre de lignes récupérées à partir de la requête MySQL. Il accepte une ressource de jeu de résultats en tant que paramètre et renvoie le nombre de lignes ou false si une erreur s'est produite. Voici un exemple :

$result = mysql_query("SELECT * FROM mytable");

$num_rows = mysql_num_rows($result);

echo "Rows: ".$ num_rows;

Cela renverra le nombre de lignes récupérées de la table mytable. Cependant, si le jeu de résultats n'est pas une ressource, un avertissement apparaîtra :

PHP Attention : mysql_num_rows() s'attend à ce que le paramètre 1 soit une ressource, booléen donné dans ...

#🎜🎜 #Pourquoi ? Un avertissement « booléen donné » apparaît ?

Ce problème est généralement causé par un échec de requête SQL. Lors de l'utilisation de la fonction mysql_query(), elle peut renvoyer false, indiquant que la requête a échoué. Si nous passons ce résultat en paramètre à la fonction mysql_num_rows(), il sera interprété comme une valeur booléenne au lieu de la ressource de jeu de résultats attendue. Par conséquent, l'avertissement "Avertissement PHP : mysql_num_rows() s'attend à ce que le paramètre 1 soit une ressource, un booléen donné dans..." apparaît sur la console.

Comment résoudre l'avertissement "booléen donné" ?

Afin de résoudre ce problème, nous devons nous assurer que la requête SQL réussit avant d'utiliser la fonction mysql_num_rows(). Nous pouvons vérifier le résultat de la fonction mysql_query() comme ceci :

$result = mysql_query("SELECT * FROM mytable");

if($result){

$num_rows = mysql_num_rows($result);

echo "Rows: ".$num_rows;
}

Cela garantira que la fonction mysql_num_rows() n'est utilisée qu'après que la requête a été exécuté avec succès.

Une autre méthode consiste à utiliser l'extension MySQLi ou PDO (PHP Data Objects) pour se connecter et interroger la base de données MySQL. L'extension MySQLi fournit une méthode améliorée d'accès aux bases de données MySQL, tandis que PDO peut être utilisé pour connecter et interroger différents types de bases de données (telles que MySQL, PostgreSQL, SQLite).

Ce qui suit est un exemple utilisant MySQLi :

$conn = mysqli_connect("localhost","username","password","dbname");

if (!$conn) {

die("Connexion impossible : ".mysqli_error($conn));

}

$result = mysqli_query($conn,"SELECT * FROM matable");
if($result){

$num_rows = mysqli_num_rows($result);

echo "Lignes : ".$num_rows;
}#🎜🎜 #
De plus, PDO fournit également une méthode d'accès à la base de données facile à utiliser et sécurisée :

$conn = new PDO("mysql:host=localhost;dbname=myDB"," nom d'utilisateur "," mot de passe ");

$result = $conn->query("SELECT * FROM mytable");

if($result){

$num_rows = $result- > ;rowCount();

echo "Lignes : ".$num_rows;
}

Summary

"booléen donné" apparaît lors de l'utilisation de mysql_num_rows () fonction "L'avertissement est généralement provoqué par un échec de requête SQL. Afin de résoudre ce problème, nous devons nous assurer que la requête réussit avant d'utiliser la fonction mysql_num_rows(), ou d'utiliser une autre méthode d'accès à la base de données MySQL, telle que l'extension MySQLi ou PDO.

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