A voir également:
- Problème d'apostrophe
- A apostrophe majuscule - Guide
- Remplacer apostrophe requête sql ✓ - Forum Webmastering
- Apostrophe clavier qwertz ✓ - Forum Clavier
- Apostrophe clavier samsung - Forum Samsung
- Apostrophe word ✓ - Forum Word
3 réponses
Sri Lumpa
Messages postés
177
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
1 juin 2010
68
31 mai 2008 à 00:02
31 mai 2008 à 00:02
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.
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
328
31 mai 2008 à 00:28
31 mai 2008 à 00:28
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,