Téléchargement
illégal
Posez votre question Signaler

Problème d'apostrophe

fourniey - Dernière réponse le 10 oct. 2008 à 00:41
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!
Lire la suite 

Problème d'apostrophe »

3 réponses
Réponse
+1
moins plus
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.
Ajouter un commentaire
Réponse
+1
moins plus
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,
Ajouter un commentaire
Réponse
-1
moins plus
Sur la version Orcale SQL, le caractère d'échappement est plutôt l'apostrophe !
Ajouter un commentaire
Ce document intitulé « Problème d'apostrophe » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?