(PHP 5, PHP 7, PHP 8)
mysqli::real_escape_string -- mysqli_real_escape_string — Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion
Style orienté objet
Style procédural
Cette fonction est utilisée pour créer une chaîne SQL valide qui pourra être utilisée dans une requête SQL. La chaîne de caractères string
est encodée pour produire une chaîne SQL échappée, en tenant compte du jeu de caractères courant de la connexion.
Le jeu de caractères doit être défini soit au niveau serveur, soit avec la fonction API mysqli_set_charset() pour qu'il affecte la fonction mysqli_real_escape_string(). Voir la section sur les concepts on des jeux de caractères pour plus d'informations.
mysql
Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().
string
La chaîne de caractères à échapper.
Les caractères encodés sont NUL (ASCII 0)
, \n
, \r
, \
, '
, "
, et CTRL+Z.
Retourne une chaîne de caractères échappée.
Exemple #1 Exemple avec mysqli::real_escape_string()
Style orienté objet
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$city = "'s-Hertogenbosch";
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
$mysqli->real_escape_string($city));
$result = $mysqli->query($query);
printf("Select returned %d rows.\n", $result->num_rows);
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'", $city);
$result = $mysqli->query($query);
Style procédural
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");
$city = "'s-Hertogenbosch";
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
mysqli_real_escape_string($mysqli, $city));
$result = mysqli_query($mysqli, $query);
printf("Select returned %d rows.\n", mysqli_num_rows($result));
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'", $city);
$result = mysqli_query($mysqli, $query);
Les exemples ci-dessus vont afficher quelque chose de similaire à :
Select returned 1 rows. Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's-Hertogenbosch'' at line 1 in...