Comparaison de chaines contenant des apostrophes

jmp_416 Messages postés 6 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 6 août 2008 - 15 mai 2007 à 12:43
jmp_416 Messages postés 6 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 6 août 2008 - 15 mai 2007 à 15:20
Lorsque je compare deux chaines avec une requête basique du genre
$query = "SELECT * from $ep_category_tablename
                where category_category = '$category_name'  ";
      $result = mysql_query($query) or mysql_die();
si le champ category_category contient une apostrophe (avec un slash devant suite à un php addslashes) et '$category_name' en contient une aussi, alors mysql ne trouve pas égalité entre les deux chaines, même si les deux chaines sont identiques (ex l'arbre dans les deux champs, '$category_name' et category_category
D'avance merci pour votre aide

2 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
15 mai 2007 à 14:07
Salut,

str_replace('\'', '\\\'', $chaine);

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
jmp_416 Messages postés 6 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 6 août 2008
15 mai 2007 à 15:20
Effectivement, c'est la solurtion, Je ne sais pas pourquoi dans ma version de mysql, le str_replace('\'', '\\\'', $chaine); ne fonctionne pas (il ne rajoute qu'un \ et pas deux) mais le

mysql_real_escape_string($chaine)
qui fait la même chose, lui , fonctionne
D'avance merci
jmp_416
0
Rejoignez-nous