PHP / PhpMyAdmin et les apostrophes

Résolu/Fermé
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 - Modifié par nik029 le 2/07/2012 à 08:55
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 - 2 juil. 2012 à 13:16
Bonjour,

J'ai réaliser un petit script où un utilisateur rentre un texte. Il clique sur un bouton "enregistrer", et son texte est directement envoyé sur ma base de donnée (PhpMyAdmin). Le problème, c'est quand le texte contient des apostrophes ou des guillemets, le texte ne s'envoie pas sur la base de donnée est affiché plutôt à l'utilisateur : 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 'e', '')' at line 1

Comment régler ce problème?

Merci d'avance.
A voir également:

5 réponses

Utilisateur anonyme
2 juil. 2012 à 11:13
C'est aux données qu'il faut appliquer la fonction, car c'est dans les données que les apostrophes peuvent poser des problèmes.
De plus, je ne vous pas d'où viennent tes variables $slider et $slide, ni où elles vont.
$date=mysql_real_escape_string($date);
$title=mysql_real_escape_string($title);
...
 $sql="INSERT INTO slider (date, title, content, img, texteurl, url) VALUES ('$date', '$title', '$content', '$img', '$texteurl', '$url')";  

Ce n'est peut-être pas nécessaire de le faire sur tous les champs, si tu as fait suffisamment de contrôles dessus et que tu es sûr qu'il n'y a pas d'apostrophes.
1
lionel-DIL Messages postés 1222 Date d'inscription lundi 25 juin 2012 Statut Membre Dernière intervention 7 août 2014 1 767
2 juil. 2012 à 09:00
Bonjour,
Il faut proteger les apostrophes par un \
Exemple: "je t\'aime"
0
Utilisateur anonyme
2 juil. 2012 à 09:53
Bonjour

Il faut utiliser la fonction mysql_real_escape_string, qui protège les apostrophes... et un peu plus. Elle est faite exprès pour ça, contrairement aux addslashes et autres bricolages.

$texte="je t'aime";
$texte=mysql_real_escape_string($texte);
mysql_query ("INSERT INTO matable (message) VALUES('$texte')");
0
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
Modifié par nik029 le 2/07/2012 à 10:25
Est-ce que ça c'est bon ? :

$connect=mysql_connect('localhost','root', '');  
  mysql_select_db('slider');  
  $slider=mysql_real_escape_string($slide);  
  $sql="INSERT INTO slider (date, title, content, img, texteurl, url) VALUES ('$date', '$title', '$content', '$img', '$texteurl', '$url')";  
  $requete=mysql_query($sql) or die(mysql_error());  



EDIT : Je viens d'essayer et ça ne marche pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
Modifié par nik029 le 2/07/2012 à 14:10
D'accord. Je vais essayer, je vous dit ce que cela donne.

Sa marche, merci beaucoup ! :)
0