Fonction PHP mysqli real_escape_string()
Exemple - Style orienté objet
Caractères spéciaux d'échappement dans les chaînes :
<?php
$mysqli = new mysqli("localhost","my_user","my_password","my_db");
if ($mysqli -> connect_errno) {
echo "Failed to connect to MySQL: " .
$mysqli -> connect_error;
exit();
}
// Escape special characters, if any
$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 Row inserted.\n", $mysqli->affected_rows);
}
$mysqli -> close();
?>
Regardez 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 à utiliser dans une requête SQL, en tenant compte du jeu de caractères actuel de la connexion.
Cette fonction est utilisée pour créer une chaîne SQL légale pouvant ê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')";
// This query will fail, cause we didn't escape $lastname
if (!$mysqli -> query($sql)) {
printf("%d Row inserted.\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
Parameter | Description |
---|---|
connection | Required. Specifies the MySQL connection to use |
escapestring | Required. The string to be escaped. Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and Control-Z. |
Détails techniques
Valeur de retour : | Renvoie la chaîne échappée |
---|---|
Version PHP : | 5+ |
Exemple - Style procédural
Caractères spéciaux d'échappement dans les chaînes :
<?php
$con = mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
}
// Escape special characters, if any
$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 Row inserted.\n", mysqli_affected_rows($con));
}
mysqli_close($con);
?>
❮ Référence PHP MySQLi