Requete SQL problème avec une cote '
Résolu
Bonjour,
j'ai une requête SQL qui ne fonctionne pas:
$requete = "SELECT * FROM SECTIONS INNER JOIN MENUS ON RefMenu=IdMenu WHERE NomMenu='$NomMenu'";
or dans ce cas précis, $NomMenu vaut "livre d'or" ce qui fait que ma requête devient:
$requete = " SELECT * FROM SECTIONS INNER JOIN MENUS ON RefMenu=IdMenu WHERE NomMenu='livre d' ";
Biensur, le NomMenu livre d n'existe pas, ce qui me créer une erreur.
comment puis-je faire pour empêcher cela ? sachant que je ne peut pas enlever la cote ' par un antislash.
Merci d'avance.
j'ai une requête SQL qui ne fonctionne pas:
$requete = "SELECT * FROM SECTIONS INNER JOIN MENUS ON RefMenu=IdMenu WHERE NomMenu='$NomMenu'";
or dans ce cas précis, $NomMenu vaut "livre d'or" ce qui fait que ma requête devient:
$requete = " SELECT * FROM SECTIONS INNER JOIN MENUS ON RefMenu=IdMenu WHERE NomMenu='livre d' ";
Biensur, le NomMenu livre d n'existe pas, ce qui me créer une erreur.
comment puis-je faire pour empêcher cela ? sachant que je ne peut pas enlever la cote ' par un antislash.
Merci d'avance.
Configuration: Windows XP Firefox 2.0.0.12
5 réponses
-
C'est tres malin ca ! Merci du conseil, j'y penserais si je retombe sur ce probleme :)
-
Bonsoir,
merci de donner des nouvelles.
Tu aurais aussi pu faire ça je pense que ça aurait marché :$requete = 'SELECT * FROM SECTIONS INNER JOIN MENUS ON RefMenu=IdMenu WHERE NomMenu="'.$NomMenu.'"'
-
Bonsoir j'ai retrouver ce sujet créer il y a bien lontemps, juste pour dire que la "cote" en question provenait d'une base de donnée donc c'était imposible de l'échaper.
Cependant vu que c'était la seule qui m'embétait j'ai tous simplement réécrit la fonction en faisant un "if = NomMenu='livre d' "....
Voila, bonne soirée. -
Bonsoir,
Il faut que tu echappe ton apostrophe. Pour cela soit tu n'en a qu'un et tu lui met un \ devant (\'), soit ça peut revenir et dans ce cas là tu utilises une fonction comme mysql_escape_string() par exemple.
Je te conseille la seconde solution plutôt. -
Bonjour,
Essaie en doublant la cote ..............