Maison >développement back-end >tutoriel php >Pourquoi `mysqli_real_escape_string()` lance-t-il « attend exactement 2 paramètres, 1 étant donné » ?

Pourquoi `mysqli_real_escape_string()` lance-t-il « attend exactement 2 paramètres, 1 étant donné » ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-04 14:50:10488parcourir

Why Does `mysqli_real_escape_string()` Throw

Résolution de l'erreur "mysqli_real_escape_string() attend exactement 2 paramètres, 1 donné"

La fonction "mysqli_real_escape_string()" est conçue pour échapper aux caractères spéciaux dans une chaîne afin d'éviter Attaques par injection SQL. Cependant, il a une exigence de paramètre spécifique qui peut provoquer l'erreur "mysqli_real_escape_string() attend exactement 2 paramètres, 1 donné."

Analyse du problème :

Le code fourni vérifie la version PHP et tente d'utiliser "mysqli_real_escape_string()" en conséquence. Cependant, l'appel de fonction n'inclut que la chaîne à échapper, il manque le premier paramètre requis : le lien mysqli.

Explication de la documentation :

Selon la documentation officielle, "mysqli_real_escape_string()" nécessite deux paramètres :

  1. mysqli $link : Une référence à une connexion MySQLi établie.
  2. string $escapestr : La chaîne à échapper.

Solution :

Pour résoudre l'erreur, le code doit inclure les deux paramètres lors de l'appel du Fonction "mysqli_real_escape_string()". Voici une version mise à jour :

if (phpversion() >= '4.3.0') {
    $string = mysqli_real_escape_string($link, $string);
} else {
    $string = mysqli_escape_string($link, $string);
}

En s'assurant que le lien mysqli est fourni comme premier paramètre, la fonction "mysqli_real_escape_string()" échappera correctement à la chaîne d'entrée et empêchera les vulnérabilités d'injection SQL.

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