diff --git a/reference/mysqli/mysqli/quote-string.xml b/reference/mysqli/mysqli/quote-string.xml
new file mode 100644
index 0000000000..eaf193d93b
--- /dev/null
+++ b/reference/mysqli/mysqli/quote-string.xml
@@ -0,0 +1,174 @@
+
+
+
+
+ mysqli::quote_string
+ mysqli_quote_string
+ Entoure de guillemets et protège une chaîne pour l'utiliser dans une requête SQL
+
+
+
+ &reftitle.description;
+ &style.oop;
+
+ publicstringmysqli::quote_string
+ stringstring
+
+ &style.procedural;
+
+ stringmysqli_quote_string
+ mysqlimysql
+ stringstring
+
+
+ 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 donnée est échappée de la même façon que par
+ mysqli::real_escape_string, en tenant compte du jeu
+ de caractères courant de la connexion, et le résultat est entouré de
+ guillemets simples. La valeur retournée doit donc être insérée dans la
+ requête sans ajouter d'autres guillemets autour d'elle.
+
+
+ Contrairement à mysqli::real_escape_string, le résultat
+ est également sûr lorsque le mode SQL NO_BACKSLASH_ESCAPES
+ est activé sur la connexion.
+
+
+ Sécurité : Le jeu de caractères par défaut
+
+ 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_quote_string.
+ Voir la section sur les concepts
+ des jeux de caractères
+ pour plus d'informations.
+
+
+
+
+ L'ajout de guillemets ne convient qu'aux littéraux de type chaîne. Cela ne
+ sécurise pas les identifiants, tels que les noms de tables ou de colonnes.
+ Dès que c'est possible, il faut utiliser des
+ requêtes préparées
+ plutôt que de construire les requêtes manuellement.
+
+
+
+
+
+ &reftitle.parameters;
+
+
+ &mysqli.link.description;
+
+ string
+
+
+ La &string; à entourer de guillemets et à échapper.
+
+
+ Les caractères encodés sont NUL (ASCII 0),
+ \n, \r, \,
+ ', ", et
+ CTRLZ.
+ Si le mode SQL NO_BACKSLASH_ESCAPES est activé sur
+ la connexion, seul ' est encodé, en le doublant.
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Retourne la chaîne échappée, entourée de guillemets simples.
+
+
+
+
+ &reftitle.examples;
+
+ Exemple avec mysqli::quote_string
+ &style.oop;
+
+quote_string($city));
+$result = $mysqli->query($query);
+printf("Select a retourné %d lignes.\n", $result->num_rows);
+
+/* Cette requête échouera, car $city n'a pas été entouré de guillemets ni échappé */
+$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'", $city);
+$result = $mysqli->query($query);
+]]>
+
+ &style.procedural;
+
+
+
+ &examples.outputs.similar;
+
+
+
+
+
+
+
+ &reftitle.seealso;
+
+ mysqli::real_escape_string
+ mysqli::set_charset
+
+
+
+
+
diff --git a/reference/mysqli/mysqli/real-escape-string.xml b/reference/mysqli/mysqli/real-escape-string.xml
index 354381020e..d7509a7120 100644
--- a/reference/mysqli/mysqli/real-escape-string.xml
+++ b/reference/mysqli/mysqli/real-escape-string.xml
@@ -1,6 +1,5 @@
-
-
+
mysqli::real_escape_string
@@ -40,6 +39,20 @@
pour plus d'informations.
+
+
+ Cette fonction n'ajoute pas de guillemets autour du résultat : ils doivent être
+ ajoutés par l'appelant. Si le mode SQL NO_BACKSLASH_ESCAPES est
+ activé sur la connexion, seul le guillemet simple
+ (') est échappé : une valeur placée entre guillemets doubles
+ (") peut donc terminer la chaîne et permettre une injection SQL.
+ Il faut utiliser à la place des
+ requêtes préparées.
+ Si ce n'est pas possible, il faut utiliser
+ mysqli::quote_string, qui entoure toujours le
+ résultat de guillemets simples.
+
+
@@ -53,12 +66,14 @@
La &string; à échapper.
-
+
Les caractères encodés sont NUL (ASCII 0),
\n, \r, \,
', ", et
CTRLZ.
-
+ Si le mode SQL NO_BACKSLASH_ESCAPES est activé sur
+ la connexion, seul ' est encodé, en le doublant.
+
@@ -131,11 +146,10 @@ Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax
&reftitle.seealso;
-
-
- mysqli_set_charset
-
-
+
+ mysqli_set_charset
+ mysqli_quote_string
+