Problème d'encodage avec fonction "mysql_real_escape_string" [Résolu]

anthony428 102 Messages postés vendredi 18 août 2006Date d'inscription 29 mai 2012 Dernière intervention - 5 août 2009 à 14:24 - Dernière réponse : anthony428 102 Messages postés vendredi 18 août 2006Date d'inscription 29 mai 2012 Dernière intervention
- 6 août 2009 à 14:55
Bonjour,
Alors voila, je récupère des champs d'un fichier csv.
Je les récupère dans un tableau puis j'utilise la fonction utf8_decode avant de les envoyer dans ma base de données, comme cela, les caractères spéciaux sont gérés.

Le problème est que le transfert s'arrête lorsque j'ai un apostrophe dans un des champs du fichier. Il considère que la requête SQL est fausse et arrête le traitement.

J'ai donc trouvé la fonction "mysql_real_escape_string" qui doit mettre un caractère d'échappement pour que celui ci soit géré comme une chaîne de caractère classique mais dès que je l'utilise couplé à ma fonction utf8, je pers l'affichage des accents.

Quelqu'un à t'il une solution ?

Voici ma façon de procéder :

$ville = mysql_real_escape_string($data[6]);
$ville = utf8_decode($ville); echo $ville;


echo $ville; revoit "le ch?au d\'ol?n"
au lieu de "le château d'oléron"

N'y a t'il pas moyen de combiner ces deux fonctions pour avoir le résultat que je souhaite à l'affichage ?

Merci d'avance
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
cs_InTheMix 18 Messages postés mercredi 18 octobre 2000Date d'inscription 5 août 2009 Dernière intervention - 5 août 2009 à 15:47
3
Merci
Je n'ai peut-être pas compris, mais, est-ce que tu as essayé la fonction addslashes ?

voir sur php.net


InTheMix

Merci cs_InTheMix 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 126 internautes ce mois-ci

Commenter la réponse de cs_InTheMix
Meilleure réponse
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 5 août 2009 à 20:06
3
Merci
Salut,

mysql_real_escape_string fait ce que fait addslashes bien mieux (sécurité, etc ...)
Elle est sans doute bien plus indiquée que addslashes et tu devrais faire la correction (sans le uft8_decode)


Cordialement,


Kohntark -

Merci kohntark 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 126 internautes ce mois-ci

Commenter la réponse de kohntark
nanti 59 Messages postés samedi 14 avril 2007Date d'inscription 2 avril 2010 Dernière intervention - 5 août 2009 à 14:41
0
Merci
Salut anthony !

As-tu essayé avec htmlentities() ????

genre :

$ville = mysql_real_escape_string(htmlentities($data[6]));

J'espère que ça fonctionnera pour toi ainsi... !!!
Commenter la réponse de nanti
anthony428 102 Messages postés vendredi 18 août 2006Date d'inscription 29 mai 2012 Dernière intervention - 5 août 2009 à 15:28
0
Merci
salut,
merci pour ta réponse et en effet, je pense que cela doit être l'une de ces fonction mais laquelle ?

Le résultat entré dans ma base de données et le suivant :
d'oléron

Je pense qu'il ne manque pas grand chose pour que l'affichage soit correct.
Merci beaucoup
Commenter la réponse de anthony428
anthony428 102 Messages postés vendredi 18 août 2006Date d'inscription 29 mai 2012 Dernière intervention - 5 août 2009 à 16:13
0
Merci
Merci, tout à compris à mon problème. La fonction addslashes fonctionne à merveille. Je n'ai pas besoin de la fonction utf8_decode en plus, je n'ai besoin que de :

$ville = addslashes($data[6]);

Merci pour votre aide.
Commenter la réponse de anthony428
anthony428 102 Messages postés vendredi 18 août 2006Date d'inscription 29 mai 2012 Dernière intervention - 6 août 2009 à 14:55
0
Merci
en effet, la fonction mysql_real_escape_string fonctionne également. Si tu me dis que cette fonction semble plus indiqué que la fonction addslashes, je te fais confiance, ça ne serait pas la première fois que tu m'aide sur ce forum.
En tout cas, merci à vous pour m'avoir aidé à solutionner mon problème.
Commenter la réponse de anthony428

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.