Maison >développement back-end >tutoriel php >Pourquoi `mysqli_query()` renvoie-t-il « s'attend à ce que le paramètre 1 soit mysqli, null étant donné » ?
Avertissement : mysqli_query() s'attend à ce que le paramètre 1 soit mysqli, null étant donné
Cette erreur survient lors de la tentative d'exécution d'une requête MySQL à l'aide de mysqli_query (), mais le paramètre fourni pour l'objet de connexion n'est pas un objet MySQLi valide. La fonction mysqli_query() s'attend à ce que le premier paramètre soit une instance de la classe mysqli.
Dans l'extrait de code fourni, l'erreur est probablement due à la raison suivante :
Problème de portée
L'objet de connexion mysqli $con, qui est déclaré dans la portée globale, n'est pas accessible dans le fonction getPosts(). Cela entraîne la transmission de la valeur nulle comme premier paramètre à mysqli_query(), conduisant à l'erreur.
Solution :
Pour résoudre ce problème, vous pouvez explicitement passez l'objet de connexion à la fonction getPosts() en tant que paramètre. Voici le code modifié :
function getPosts(mysqli $con) { $query = mysqli_query($con, "SELECT * FROM Blog"); // ... Rest of the code remains the same }
Maintenant, lorsque vous appelez la fonction getPosts(), assurez-vous de passer l'objet de connexion en argument.
De plus, c'est une bonne pratique d'activer rapport d'erreurs et gérer les problèmes de connexion à la base de données avec élégance. Voici un exemple :
// Enable error reporting mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // Establish database connection $con = mysqli_connect("localhost", "xxxx", "xxxx", "xxxxx"); // Check connection status if (!$con) { throw new Exception('Failed to connect to MySQL: ' . mysqli_connect_error()); } // Call the getPosts() function with the connection object getPosts($con);
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!