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é » ?

Pourquoi `mysqli_query()` renvoie-t-il « s'attend à ce que le paramètre 1 soit mysqli, null étant donné » ?

Linda Hamilton
Libérer: 2024-12-15 00:58:17
original
423 Les gens l'ont consulté

Why Does `mysqli_query()` Return

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
}
Copier après la connexion

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);
Copier après la connexion

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 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