Comment utiliser la fonction mysqli_real_escape_string

Comment utiliser la fonction mysqli_real_escape_string
Un mysqli_real_escape_string est une fonction intégrée du PHP qui est utilisé pour contrôler les caractères indésirables et dangereux. Dans cet article, nous discuterons avec l'aide d'un exemple quelle est la fonction mysqli_real_escape_string et comment elle peut être utilisée pour la protection de la base de données.

Qu'est-ce qu'un mysqli_real_escape_string

Par définition, MySqli_Real_escape_String () permet aux caractères spéciaux d'une chaîne de s'échapper vers la base de données par la requête SQL, en tenant compte de l'ensemble de caractères actuel de la connexion établie. En mots simples, cette fonction permet aux caractères spéciaux d'être considérés comme faisant partie de la chaîne et enregistrés dans la base de données en tant que chaîne. Les pirates utilisent principalement des caractères spéciaux tels que ?,', ^,%, et !, Pour pirater la base de données ou abuser des données d'une base de données, donc pour éviter cette loi, cette fonction est utilisée qui oblige le PHP à être considéré comme la chaîne uniquement. La syntaxe générale de cette fonction est comme:

mysqli_real_escape_string (connection_variable, string_variable)

Dans la syntaxe générale, connection_variable est le résultat de la fonction mysqli_connect () stockée dans n'importe quelle variable et string_variable est la variable qui est censée passer par cette fonction pour échapper aux caractères. Par exemple, nous créons un code de PHP dans lequel nous établissons d'abord la connexion du PHP avec la base de données en utilisant la fonction, mysqli_connect () avec les paramètres de localHost; La base de données est sur la même machine, nom d'utilisateur; Maadi, mot de passe; QWER1234 et nom de la base de données; Organisation. Ensuite, nous avons appliqué la condition IF-Else, pour vérifier si la connexion est établie avec succès ou non en utilisant une fonction, mysqli_real_escape_string (Connection_variable, string_variable). Après avoir assuré l'établissement réussi de la connexion, nous déclarerons la variable, nommée, premier nom et attribuer une chaîne qui comprend un caractère spécial, puis l'insérer dans la base de données Linuxhint.

// Établissement d'une connexion avec des données
$ connection = mysqli_connect ("localhost", "maadi", "organisation");
// Vérification de l'état de la connexion
if (mysqli_connect_errno ())
Echo "Impossible de se connecter à MySQL:" .mysqli_connect_error ();
sortie();

// Déclarer la variable
$ FirstName2 = "John'o Alexander";
// insertion dans la base de données
$ sql = "Insérer dans LinuxHint (emp_name) valeurs ('$ firstName2')");
// Exécution des requêtes MySQL
$ r = mysqli_query ($ Connection, "Insérer dans LinuxHint Values ​​('FirstName2')");
si(!$ r)
print ("Erreur s'est produite \ n");

autre
print ("Enregistrement inséré avec succès \ n");

// Connexion fermée
mysqli_close ($ connection);
?>

La sortie de ce code doit être une erreur car la chaîne contient le caractère spécial 'entre lui. Pour vérifier la sortie, ouvrez le terminal dans Ubuntu et exécutez ce fichier PHP à l'aide de la commande de PHP avec le nom de fichier dans lequel le code est enregistré.

$ php fichier1.php

L'erreur s'est produite, pour rectifier cette erreur, nous utiliserons le mysqli_real_escape_string () et enregistrerons la chaîne dans la base de données.

// Établissement d'une connexion avec des données
$ connection = mysqli_connect ("localhost", "maadi", "organisation");
// Vérification de l'état de la connexion
if (mysqli_connect_errno ())
Echo "Impossible de se connecter à MySQL:" .mysqli_connect_error ();
sortie();

// Déclarer la variable
$ FirstName2 = "John'o Alexander";
// passe du mysqli_real_escape_string ()
$ firstName = mysqli_real_escape_string ($ connection, $ firstName2);
// insertion dans la base de données
$ sql = "Insérer dans LinuxHint (emp_name) valeurs ('$ firstName')");
// Exécution des requêtes MySQL
$ r = mysqli_query ($ Connection, "Insérer dans LinuxHint Values ​​('FirstName')");
si(!$ r)
print ("Erreur s'est produite \ n");

autre
print ("Enregistrement inséré avec succès \ n");

// Connexion fermée
mysqli_close ($ connection);
?>

Exécutez à nouveau le fichier dans le terminal.

$ php fichier1.php

La sortie est réussie. Pour le vérifier, nous irons sur MySQL et exécuterons la commande suivante pour vérifier si la chaîne est insérée dans la base de données ou non.

SELECT * FROM LINUXHINT;

Conclusion

Pour sécuriser les fichiers est une préoccupation préalable de tous car ils peuvent inclure des données confidentielles. Principalement dans le piratage, les caractères spéciaux sont utilisés pour se connecter avec la base de données pour récupérer ses données à des fins contraires. Pour éviter cela, nous pouvons mettre une variété de vérifications de sécurité sur les données avant qu'elles ne soient insérées dans la base de données. Dans cet article, nous avons discuté de l'une des fonctions intégrées de PHP qui est utilisée pour assurer la sécurité d'une manière qu'aucun caractères spéciaux n'interagit dans la base de données pour lui nuire. Au lieu de cela, cette fonction l'a considérée comme une chaîne normale et a inséré la chaîne dans la base de données.