Maison >développement back-end >tutoriel php >Pourquoi `mysqli_real_escape_string()` génère-t-il une erreur de « incompatibilité de paramètres » et comment puis-je la corriger ?

Pourquoi `mysqli_real_escape_string()` génère-t-il une erreur de « incompatibilité de paramètres » et comment puis-je la corriger ?

DDD
DDDoriginal
2024-12-01 20:37:10881parcourir

Why Does `mysqli_real_escape_string()` Throw a

mysqli_real_Escape_string : Comprendre l'inadéquation des paramètres

Lors de l'utilisation de la fonction mysqli_real_escape_string(), les développeurs peuvent rencontrer l'erreur : "mysqli_real_escape_string() attend exactement 2 paramètres, 1 étant donné. " Pour résoudre ce problème, nous devons comprendre l'utilisation correcte de la fonction et ses exigences en matière de paramètres.

Signature de fonction

Selon la documentation officielle, la syntaxe de mysqli_real_escape_string() est :

string mysqli_real_escape_string ( mysqli $link , string $escapestr )

Cela indique que la fonction nécessite deux paramètres :

  1. $link : Une connexion MySQLi valide lien
  2. $escapestr : La chaîne à échapper

Idée fausse courante et solution

L'extrait de code fourni tente de vérifier la version de PHP pour déterminer s'il faut utiliser mysqli_real_escape_string( ) ou mysqli_escape_string(). Cependant, cela échoue car mysqli_real_escape_string() nécessite un lien de connexion MySQLi comme premier paramètre, qui manque dans le code.

Pour corriger cette erreur, nous devons fournir les paramètres corrects à mysqli_real_escape_string(). Ceci peut être réalisé en établissant une connexion MySQLi et en passant le lien de connexion comme premier argument à la fonction.

Voici un exemple de la façon de l'utiliser correctement :

$mysqli = new mysqli('host', 'username', 'password', 'database');

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

Dans ce code , la variable $mysqli représente un lien de connexion MySQLi valide, qui est transmis à mysqli_real_escape_string() avec la $string à échapper. Cela devrait résoudre l'erreur et vous permettre d'utiliser mysqli_real_escape_string() comme prévu.

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