Problème d'apostrophe
fourniey
-
Anis -
Anis -
Bonjour,
Bonjour,
Cette requête ne fonctionne pas lorsque $statut contient une apostrophe et je ne sais pas pourquoi.
ora_parse($cur,"SELECT * FROM FON_PHP_STATUT_VUE where STATUT='$statut' order by NOM_FAMILLE, PRENOM",$x) or die(Ora_Error($conn));
Merci de votre aide!
Bonjour,
Cette requête ne fonctionne pas lorsque $statut contient une apostrophe et je ne sais pas pourquoi.
ora_parse($cur,"SELECT * FROM FON_PHP_STATUT_VUE where STATUT='$statut' order by NOM_FAMILLE, PRENOM",$x) or die(Ora_Error($conn));
Merci de votre aide!
A voir également:
- Apostrophe à l'envers
- Ecran a l'envers - Guide
- 3 à l'envers ✓ - Forum Windows
- Slash a l'envers ✓ - Forum Programmation
- Apostrophe modifiée automatiquement par word ✓ - Forum Word
- / À l'envers clavier ✓ - Forum Matériel & Système
3 réponses
C'est parce que, pour les requêtes MySQL, l'apostrophe marque la fin d'un champ. Alors si il y a une apostrophe dans une des valeurs que tu cherches à insérer, par exemple la chaine "aujourd'hui", MySQL va interpréter ça comme :
SELECT event FROM table WHERE date='aujourd'hui'
Le petit bout "hui", il ne saura pas quoi en faire et va donc générer une erreur.
Pour régler ça tu peux soit remplacer l'apostrophe par un caractère de ton choix, où la remplacer par son code HTML par exemple. Peut-être que mettre un caractère d'échappement "\" devant peut marcher mais je n'en suis pas sûr.
SELECT event FROM table WHERE date='aujourd'hui'
Le petit bout "hui", il ne saura pas quoi en faire et va donc générer une erreur.
Pour régler ça tu peux soit remplacer l'apostrophe par un caractère de ton choix, où la remplacer par son code HTML par exemple. Peut-être que mettre un caractère d'échappement "\" devant peut marcher mais je n'en suis pas sûr.
Bonsoir,
Comme le souligne Sri Lumpa (décidemment ce soir il aide beaucoup de monde), l'apostrophe ferme la chaine.
Et le caractère d'échappement est effectivement le backslash : http://dev.mysql.com/doc/refman/5.0/fr/string-syntax.html
Je te conseille par ailleurs de faire un petit tour google et de taper 'injection sql', c'est assez intéressant.
Cordialement,
Comme le souligne Sri Lumpa (décidemment ce soir il aide beaucoup de monde), l'apostrophe ferme la chaine.
Et le caractère d'échappement est effectivement le backslash : http://dev.mysql.com/doc/refman/5.0/fr/string-syntax.html
Je te conseille par ailleurs de faire un petit tour google et de taper 'injection sql', c'est assez intéressant.
Cordialement,