Maison >développement back-end >tutoriel php >Pourquoi `mysqli_query()` renvoie-t-il « Avertissement : mysqli_query() s'attend à ce que le paramètre 1 soit MySQLi, null étant donné » ?

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

DDD
DDDoriginal
2024-12-18 17:12:11651parcourir

Why Does `mysqli_query()` Return

Comprendre "Avertissement : mysqli_query() s'attend à ce que le paramètre 1 soit MySQLi, null donné dans" Erreur

Dans votre tentative de création d'un fichier personnalisé CMS, vous avez rencontré le message d'erreur suivant :

"Avertissement : mysqli_query() s'attend à ce que le paramètre 1 soit MySQLi, null donné dans"

Cause de l'erreur

Cette erreur indique que la fonction mysqli_query(), qui exécute les requêtes SQL, attend un objet MySQLi comme premier paramètre. Cependant, dans votre fonction getPosts(), vous transmettez une valeur nulle au lieu d'un objet MySQLi.

Solution

La solution à ce problème est de garantir que le L'objet $con MySQLi entre dans le cadre de la fonction getPosts(). Dans votre code, $con est défini dans la portée globale, mais il n'est pas accessible dans la fonction.

Passer l'objet MySQLi en tant que dépendance

Une façon de L'adresse consiste à transmettre l'objet MySQLi à la fonction getPosts() en tant que dépendance. Voici comment procéder :

function getPosts(mysqli $con) {
    // etc
}

En faisant de l'objet MySQLi un paramètre de la fonction, vous vous assurez qu'il est disponible dans la portée de la fonction et qu'il peut être utilisé par mysqli_query().

Recommandations supplémentaires

En plus de résoudre le problème de cadrage, envisagez de mettre en œuvre les éléments suivants recommandations :

  • Gérez les erreurs et les échecs de connexion en utilisant mysqli_report() pour définir les options de rapport d'erreurs.
  • Arrêtez l'exécution du script si une erreur de connexion ou une erreur de requête se produit à l'aide de mysqli::error ().

Voici un exemple de la façon de les mettre en œuvre recommandations :

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // throw exceptions
$con=mysqli_connect("localhost","xxxx","xxxx","xxxxx");

if (!$con) {
    throw new Exception("Failed to connect to MySQL: " . mysqli_connect_error());
}

getPosts($con);

En mettant en œuvre ces recommandations, vous pouvez garantir la robustesse et la fiabilité de votre CMS personnalisé.

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