échapper les caractère spéciaux

Fermé
comalias94 - 4 nov. 2008 à 09:54
 comalias94 - 5 nov. 2008 à 11:16
Bonjour,
Je voudrais savoir comment échapper les caractère spéciaux avec MySQL
quel est le paramétrage a faire ?

J'utilise la version 5

Merci
A voir également:

2 réponses

Bonjour

il n'y a pas de paramétrage particulier.
en php, il y a la fonction mysql_real_escape_string qui sert à cà (et surtout pas addslashes comme on voit souvent)
0
Bonjour

j'ai essayer cette fonction mais aucun effet sur les cractère accentués

que faut il utiliser ?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894 > comalias94
5 nov. 2008 à 10:18
cette fonction ne fait rien sur les caracteres accentues, htmlentites le fait mais j'ai remarqué que ça ne marche pas bien avec les caracteres accentues recus d'un formulaire.

alors il faut te faire une petite fonction avec ereg_replace("é";"é", $chaine) par exemple

tu mets tous les carateres dans un array et tu fais une boucle
0
toto > comalias94
5 nov. 2008 à 11:11
j'ai essayer cette fonction mais aucun effet sur les cractère accentués
Cette fonction ne fait rien sur les caractères accentués parce que les caractères accentués n'ont pas à être échappés.
Quant à htmlentities, ça sert à coder les caractères pour un affichage en html. Aucun rapport avec les bases de données, même si on lit souvent le contraire. Elle ne devrait être utilisée qu'au moment de l'affichage des données, pas avant leur stockage.
0
ok merci Alain_42 sa fonctionne mais j'ai remarqué que mon soucis provient de ma mase de donné sql car lorsque j'envoie une requette à partir des informations (provenant d'un formulaire) sa bloque :


$result1 = mysql_query("SELECT * FROM table_champs WHERE NomInput='$temp1b' AND Champs='$temp2b'")

while($info = mysql_fetch_assoc($result1))
{
$msg=mysql_escape_string($info["Type"]);
}


ma requettes me donne un résulttat ok dans $msg seulement si l'info que je lui envoie n'a pas de caractère spécial ou de caractère accentué

PS: $temp1b et $temp2b sont issue d'un mysql_real_escape_string() et d'un ereg_replace() avant d'etre utilisé dans la requette

Merci pour votre aide
0