Update table sql, erreur avec caractères accentués...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Update table sql, erreur avec caractères accentués...

Update table sql, erreur avec caractères accentués...

par Stef » 19 janv. 2009, 11:52

Hello tous :)

vous me trouverez bien décontenancé avec ce petit problème qui m'intrigue quelque peu! explication:

les utilisateurs du site sur lequel je travaille devront pouvoir éditer des données les concernant (données stockées dans une table), il y a notamment un champ textarea dans le formulaire dédition et c'est lui qui me pose problème...
lorsqu'il il n'est entré aucun caractères accentués l'opération se passe sans problème mais ce n'est pas le cas avec carac. accent., ça me retourne cette erreur:
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 'test é ï ù
blablabla blablabla blablabla
blablabla blablabla bl' at line 3
"test é ï ù blablabla blablabla blablabla blablabla blablabla bl" est un test de texte dans le textarea...

Voici enfin mon code pour traiter le formulaire:
$descriptif = $_POST['descriptif'];
		        $descriptif = mysql_real_escape_string(htmlspecialchars($_POST['descriptif'], ENT_QUOTES));
                $descriptif = stripslashes(nl2br($_POST['descriptif']));
				$cat = $_POST['style'];
				$licence = $_POST['licence'];
				$dl = $_POST['dl'];
				$tune = $_POST['tune'];
				$refid = $_POST['refid_user'];

        //On modifie la table

        mysql_query("
        UPDATE mb_tunes
        SET  cat ='".$cat."' ,
        descriptif = '".$descriptif."' ,
		licence = '".$licence."' ,
		dl = '".$dl."'
        WHERE tune = '".$tune."' AND refid_user = '".$refid."'") or die (mysql_error());
		echo '<h4>Succès</h4><p>Le son a bien été modifié!
		<p>';
Alors, c'est grave docteur? :D

Edit

Après un autre test j'en déduis que les ' posent aussi problème...

Redit

Résolu, j'ai modifié cette partie du code en remplaçant les ' par des " et les " par des ', et fa marfe! :D
mysql_query('
        UPDATE mb_tunes
        SET  cat ="'.$cat.'" ,
        descriptif = "'.$descriptif.'" ,
		licence = "'.$licence.'" ,
		dl = "'.$dl.'"
        WHERE tune = "'.$tune.'" AND refid_user = "'.$refid.'"') or die (mysql_error());