PHP mysqli real_escape_string() Fonction
Exemple - Style orienté objet
Échapper les caractères spéciaux dans les chaînes :
<?php
$mysqli = new mysqli("localhost","my_user","my_password","my_db");
if ($mysqli -> connect_errno) {
echo "Échec de la connexion à MySQL : " . $mysqli -> connect_error;
exit();
}
// Échapper les caractères spéciaux, le cas échéant
$firstname = $mysqli -> real_escape_string($_POST['firstname']);
$lastname = $mysqli -> real_escape_string($_POST['lastname']);
$age = $mysqli -> real_escape_string($_POST['age']);
$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$firstname', '$lastname', '$age')";
if (!$mysqli -> query($sql)) {
printf("%d Ligne insérée.\n", $mysqli->affected_rows);
}
$mysqli -> close();
?> Consultez l'exemple de style procédural en bas.
Définition et Utilisation
La fonction real_escape_string() / mysqli_real_escape_string() échappe les caractères spéciaux dans une chaîne pour une utilisation dans une requête SQL, en tenant compte de l'ensemble de caractères actuel de la connexion.
Cette fonction est utilisée pour créer une chaîne SQL valide qui peut être utilisée dans une instruction SQL. Supposons que nous ayons le code suivant :
<?php
$lastname = "D'Ore";
$sql="INSERT INTO Persons (LastName) VALUES ('$lastname')";
// Cette requête échouera, car nous n'avons pas échappé $lastname
if (!$mysqli -> query($sql)) {
printf("%d Ligne insérée.\n", $mysqli->affected_rows);
}
?> Syntaxe
Style orienté objet :
$mysqli -> real_escape_string( escapestring ) Style procédural :
mysqli_real_escape_string( connection, escapestring ) Valeurs des Paramètres
| Paramètre | Description |
|---|---|
| connection | Requis. Spécifie la connexion MySQL à utiliser |
| escapestring | Requis. La chaîne à échapper. Les caractères encodés sont NUL (ASCII 0), \n, \r, \, ', ", et Control-Z. |
Détails Techniques
| Valeur de Retour : | Renvoie la chaîne échappée |
|---|---|
| Version PHP : | 5+ |
Exemple - Style procédural
Échapper les caractères spéciaux dans les chaînes :
<?php
$con = mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno()) {
echo "Échec de la connexion à MySQL : " . mysqli_connect_error();
exit();
}
// Échapper les caractères spéciaux, le cas échéant
$firstname = mysqli_real_escape_string($con, $_POST['firstname']);
$lastname = mysqli_real_escape_string($con, $_POST['lastname']);
$age = mysqli_real_escape_string($con, $_POST['age']);
$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$firstname', '$lastname', '$age')";
if (!mysqli_query($con, $sql)) {
printf("%d Ligne insérée.\n", mysqli_affected_rows($con));
}
mysqli_close($con);
?>