2010-11-09 6 views
0

Je suis en train de mettre à jour en utilisant mysql_query en php et il me donne cette erreur:Annoying problème de requête de mise à jour MySQL

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 'read='1' WHERE id='14'' at line 1 

J'ai regardé ma requête pendant environ 10 minutes maintenant et je ne peux pas trouver ce qui est mal avec ça. Le voici:

if ($row['read'] == 0) { 
     mysql_query("UPDATE mail SET read='1' WHERE id='$mailid'") or die(mysql_error()); 
    } 

Quelqu'un peut-il voir où se trouve l'erreur?

Répondre

4

read est un mot réservé.

Enfermez dans les contre-apostrophes:

UPDATE mail SET `read`='1' WHERE id='$mailid' 
+0

Cela a fonctionné, Je vous remercie. – Kraffs

+0

@Kraffs Ensuite, vous devez définir cette réponse comme la bonne et cliquez sur le _tick_ sur la gauche de cette réponse. – Shikiryu

+0

Chouchenos Je sais: D. Mais cela m'oblige à attendre 10 minutes pour accepter une réponse. – Kraffs

2

Que diriez-vous ...

"UPDATE `mail` SET `read`='1' WHERE `id`='".$mailid."'" 
+0

Votre réponse était à peu près la même que celle de Quassnoi alors merci :) – Kraffs

+0

Merci, et dix secondes plus tôt! Bien qu'il ait fait le point spécifique re: le mot réservé, et c'est la chose importante, voir ici pour ref: http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html – SW4

2

read est un mot réservé. Vous devez utiliser backticks `autour de lire.