Problème sql update php/mysql

Bonjour,

Je programme actuellement un site en php/mysql et je rencontre un problème assez étrange, ma requête

mysql_query("UPDTATE actualites set longtext=’ “.$longtext.” ’ WHERE Id=$id ") ne fonctionne pas alors que la requete
mysql_query("INSERT INTO actualites (Id,longtext) VALUES($id,’ “.$longtext.” ') WHERE Id=$id ") fonctionne.

L’erreur pour la première requête est la suivante :

Erreur sql query : 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 ‘longtext=’

\r\n  

\r\n<p style="border-width: 0px; margin: 0px; paddi’ at line 1
Quelqu'un aurait-il une idée

Salut,

Les syntax errors de Mysql te donnent le bout de requête se trouvant après l’erreur. Donc l’erreur se trouve avant “longtext=…” essaye avec “SET” et pas “set” pour voir.

Bonjour anakin,

un conseil : toujours protéger sa base de données.
Voici les fonctions qui te permettront de la faire


mysql_real_escape_string(trim(htmlspecialchars($longtext)))


Pourquoi il faut le faire?

C’est assez simple. Si il y a un caractère sépcial tel que la ’ ou ", ta requête est modifiée et ne ressemble plus à celle que tu crois.

ex :


$longtext = ' alors il dit : "bob tu es moche" ';

$requete_sql = " UPDTATE actualites set longtext=' ".$longtext." ' WHERE Id=$id";


Ton interpreteur SQL aura : UPDTATE actualites set longtext=’ alors il dit :

d’où l’erreur sql.

Pour ton info perso :wink: :
la fonction " mysql_real_escape_string " permet d’echapper les caractères spéciaux.

la fonction " trim " supprime les espaces avant et après la variable.

la fonction "htmlspecialchars " convertit les caractères spéciaux en entités HTML

Cycyand1
Edité le 17/09/2009 à 16:57