it seems the function changes the character encoding of the string.
I get utf-8 encoded string and my mysql database is set to utf-8 as well.
If i just write the data to the database it works perfectly fine, if i use this function, it changes the encoding and therefore stores the wrong characters.
Seems like a bug to me.
mysql_escape_string
(PHP 4 >= 4.0.3, PHP 5)
mysql_escape_string — Protège les caractères spéciaux SQL
Cette extension est obsolète depuis PHP 5.5.0, et sera supprimée dans le futur. À la place, les extensions MySQLi ou PDO_MySQL doivent être utilisées. Voir aussi le guide MySQL : choix de l'API ainsi que la FAQ associée pour plus d'information. Voici les alternatives à cette fonction :
Description
$unescaped_string
)
mysql_escape_string() va protéger tous les caractères de
la chaîne unescaped_string, pour pouvoir l'utiliser
directement dans une requête mysql_query().
Cette fonction est obsolète.
mysql_escape_string() est identique à la fonction mysql_real_escape_string() hormis le fait que mysql_real_escape_string() requiert une ressource de connexion et protège la chaîne en fonction du jeu de caractères courant. mysql_escape_string() ne demande pas de connexion comme argument, et ne respecte pas le jeu de caractères courant.
Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.
Liste de paramètres
-
unescaped_string -
La chaîne qui doit être protégée.
Valeurs de retour
Retourne la chaîne protégée.
Historique
| Version | Description |
|---|---|
| 5.3.0 | Cette fonction lance maintenant une alerte de type E_DEPRECATED. |
| 4.3.0 | Cette fonction devient obsolète, ne l'utilisez pas. À la place, utilisez la fonction mysql_real_escape_string(). |
Exemples
Exemple #1 Exemple avec mysql_escape_string()
<?php
$item = "C'est un exemple de Zak";
$escaped_item = mysql_escape_string($item);
printf("Chaîne protégée : %s\n", $escaped_item);
?>
L'exemple ci-dessus va afficher :
Chaîne protégée : C\'est un exemple de Zak
Notes
Note:
mysql_escape_string() ne protège pas les caractères % et _.
Voir aussi
- mysql_real_escape_string() - Protège une commande SQL de la présence de caractères spéciaux
- addslashes() - Ajoute des antislashs dans une chaîne
- La directive magic_quotes_gpc.
The exact characters that are escaped by this function are the null byte (0), newline (\n), carriage return (\r), backslash (\), single quote ('), double quote (") and substiture (SUB, or \032).
