Maison >développement back-end >tutoriel php >Avertissement PHP : mysqli_query() : solution à une requête vide

Avertissement PHP : mysqli_query() : solution à une requête vide

王林
王林original
2023-06-22 16:45:111744parcourir

Lorsque vous utilisez PHP pour développer des applications Web, vous rencontrez souvent divers problèmes. Parmi eux, certains problèmes courants sont liés à la base de données MySQL. Un problème est l'erreur « Avertissement PHP : mysqli_query() : requête vide ». Cet article explique les causes de cette erreur et comment y remédier.

Tout d'abord, voyons ce que signifie cette erreur. Lorsque vous exécutez une requête MySQL à l'aide de la fonction mysqli_query, cette erreur se produit si la requête est vide. Cela signifie que vous avez essayé d'exécuter une requête MySQL, mais que la chaîne de requête était vide. Par exemple, la chaîne de requête dans le code suivant est vide :

$result = mysqli_query($conn, "");

Lorsque vous essayez d'exécuter cette requête, elle Cette erreur se produit. Cela peut se produire dans diverses situations. Voici quelques-unes des raisons :

  1. Erreur de syntaxe : Une erreur de syntaxe dans la chaîne de requête peut la rendre vide. Par exemple, si vous laissez accidentellement une parenthèse ou un guillemet, la chaîne de requête peut être vide.
  2. Variables non définies : Si vous utilisez des variables PHP dans la chaîne de requête et que ces variables ne sont pas définies avant la requête, la chaîne de requête peut être vide.
  3. Erreur de connexion à la base de données : S'il y a un bug dans votre code et qu'il ne parvient pas à se connecter correctement à la base de données MySQL, la requête peut être vide.

Alors, comment résoudre ce problème ? Voici quelques solutions possibles :

  1. Rechercher des erreurs de syntaxe dans la chaîne de requête : vous devez imprimer la chaîne de requête avec une instruction echo afin de pouvoir vérifier les erreurs de syntaxe. Lorsque vous recherchez des erreurs de syntaxe, vérifiez les parenthèses, les guillemets et les virgules.

Par exemple, la chaîne de requête suivante :

$sql = "SELECT * FROM myTable WHERE id = ";

When $ Lorsque la variable id n'est pas définie, la chaîne de requête est vide. Vous devez ajouter une valeur $id ou modifier la chaîne de requête en :

$sql = "SELECT * FROM myTable";

  1. Vérifiez si la connexion MySQL est OK : si vous ne parvenez pas à vous connecter correctement à la base de données MySQL, la requête est peut-être vide. Vous pouvez vous assurer que le serveur MySQL est en cours d'exécution et que le nom d'utilisateur et le mot de passe sont corrects, et vous pouvez également essayer de modifier le numéro de port du serveur MySQL.
  2. Utilisez la fonction mysqli_real_escape_string pour échapper à la chaîne de requête : Si vous créez une chaîne de requête et utilisez des variables, il est recommandé d'utiliser la fonction mysqli_real_escape_string pour échapper à ces variables. Cela garantira que votre chaîne de requête ne contient pas de caractères incorrects, empêchant ainsi la chaîne de requête d'être vide.

Par exemple, le code suivant utilise des variables pour créer une chaîne de requête :

$name = "Tom";
$sql = "SELECT * FROM myTable WHERE name = '$name'";

Vous pouvez utiliser la fonction mysqli_real_escape_string pour échapper aux variables :

$name = "Tom";
$ name = mysqli_real_escape_string( $conn, $name);
$sql = "SELECT * FROM myTable WHERE name = '$name'";

Cela garantira que la chaîne de requête n'est pas vide , même si $name contient des guillemets simples ou doubles.

Résumé :

Lors de l'utilisation de la fonction mysqli_query pour exécuter une requête MySQL, si la chaîne de requête est vide, l'erreur "Avertissement PHP : mysqli_query() : requête vide" s'affichera apparaître . Cela peut être dû à des erreurs de syntaxe, des variables non définies ou des erreurs de connexion MySQL, etc. Pour résoudre ce problème, vous pouvez vérifier les erreurs de syntaxe dans la chaîne de requête, vous assurer que le serveur MySQL est en cours d'exécution et connecté correctement, utiliser la fonction mysqli_real_escape_string pour échapper à la variable afin de vous assurer que la chaîne de requête n'est pas vide.

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