probleme apostrophe

Eléphant du PHP | 287 Messages

24 oct. 2008, 14:26

Bonjour,
J'ai créé un formulaire pour remplir une BDD.
Mon formulaire a des listes déroulantes.
Lorsque je saisi mes infos sans données avec des apastrophes tout ce passe correctement.
En revanche dès que j'ai une donnée avec apostrophe (ex: Europe de l'Ouest), pan ça marche plus, j'ai un message d'erreur.
A votre avis d'où ça vient ?
Merci

Mammouth du PHP | 2937 Messages

24 oct. 2008, 15:04

Peux-tu préciser le message d'erreur, ainsi que le contexte dans lequel il apparaît ?

A priori, je me pencherais sur un problème d'échappement de caractères sensibles, notamment si utilises ' pour délimiter les chaînes de caractères.
$chaine = 'Une chaîne avec l'apostrophe'; // Invalide (deuxième ' non échappé)
$chaine = 'Une chaîne avec l\'apostrophe'; // Valide (deuxième ' échappé)

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

24 oct. 2008, 15:34

Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "SQL & Bases de données".
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 287 Messages

24 oct. 2008, 15:57

Bonjour,
voila le message
Erreur SQL !INSERT INTO webcam(idwebcam,continent,pays,sous_continent,ville,nom_webcam,lien_webcam,stat_visite,nom_critere) VALUES('','Europe','France','Europe de l'Ouest','Paris','Le Centre Pompidou','http://','','Villes')
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Ouest','Paris','Le Centre Pompidou','http://','','Villes')' at line 1
Merci

Mammouth du PHP | 2937 Messages

24 oct. 2008, 16:09

C'est bien ce que je pensais : problème d'échappement des caractères sensibles. Il faut échapper la chaîne 'Europe de l'Ouest' comme suit :

Code : Tout sélectionner

'Europe de l\'Ouest'
PHP effectue cette opération avec, entre autres, la fonction mysql_real_escape_string().

Eléphant du PHP | 287 Messages

24 oct. 2008, 16:36

C'était ça !!
Merci beaucoup