PHP / PhpMyAdmin et les apostrophes

Résolu
nik029 Messages postés 281 Date d'inscription   Statut Membre Dernière intervention   -  
nik029 Messages postés 281 Date d'inscription   Statut Membre Dernière intervention   -
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
 
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   Statut Membre Dernière intervention   1 768
 
Bonjour,
Il faut proteger les apostrophes par un \
Exemple: "je t\'aime"
0
Utilisateur anonyme
 
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   Statut Membre Dernière intervention   44
 
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   Statut Membre Dernière intervention   44
 
D'accord. Je vais essayer, je vous dit ce que cela donne.

Sa marche, merci beaucoup ! :)
0