mysqli_real_escape_string
(PHP 5)
mysqli_real_escape_string
(no version information, might be only in CVS)
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
Description
Style procédural
string
mysqli_real_escape_string ( mysqli link, string escapestr )
Style orienté objet (méthode)
class
mysqli {
string
escape_string ( string escapestr )
string
real_escape_string ( string escapestr )
}
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
escapestr est encodée en une chaîne SQL échappée,
en tenant compte du jeu de caractères courant de la connexion.
Liste de paramètres
link
Style procédural uniquement : Un
identifiant de lien retourné par la fonction mysqli_connect()
ou par la fonction mysqli_init()
escapestr
La chaîne de caractères à échapper.
CLes caractères encodés sont NUL (ASCII 0), \n, \r, \, ', ", and
Control-Z.
Exemples
Exemple 1. Style orienté objet
<?php $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Vérification de la connexion */ if (mysqli_connect_errno()) { printf("Échec de la connexion : %s\n", mysqli_connect_error()); exit(); }
$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");
$city = "'s Hertogenbosch";
/* Cette requête échoue car nous n'avons pas échappé $city */ if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) { printf("Erreur : %s\n", $mysqli->sqlstate); }
$city = $mysqli->real_escape_string($city);
/* Cette requête, par contre, réussira car nous avons échappé $city */ if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) { printf("%d ligne insérée.\n", $mysqli->affected_rows); }
$mysqli->close(); ?>
|
|
Exemple 2. Style procédural
<?php $link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Vérification de la connexion */ if (mysqli_connect_errno()) { printf("Échec de la connexion : %s\n", mysqli_connect_error()); exit(); }
mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");
$city = "'s Hertogenbosch";
/* Cette requête échoue car nous n'avons pas échappé $city */ if (!mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) { printf("Erreur : %s\n", mysqli_sqlstate($link)); }
$city = mysqli_real_escape_string($link, $city);
/* Cette requête réussira car nous avons échappé $city */ if (mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) { printf("%d ligne insérée.\n", mysqli_affected_rows($link)); }
mysqli_close($link); ?>
|
|
L'exemple ci-dessus va afficher :
Erreur : 42000
1 ligne insérée. |