Mysql不会更新该行

时间:2013-01-08 23:09:42

标签: php mysql

  

可能重复:
  Whats wrong with this query mysql?

我正在使用mysql和php来更新记录。这是我的代码:

$n=mysql_query("UPDATE chondas SET model='$model1', yearstart=$yearstart1,
                yearstop=$yearstop1, desc='$desc1', hp='$hp1', 
                engine='$engine1',trim='$trim1', weight='$weight1' WHERE id=$id1");

在下面的代码中,如果我取出desc='$desc1',一切都很完美。什么会导致这个错误?

当我在phpmyadmin中测试以下代码时出现此错误:

  

#1064 - 您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便在第1行的'desc ='text of textarea'附近使用正确的语法。

3 个答案:

答案 0 :(得分:3)

DESCreserved word in mysql所以你需要使用反引号:

UPDATE chondas SET model='$model1', yearstart=$yearstart1, yearstop=$yearstop1, `desc`='$desc1', hp='$hp1', engine='$engine1',trim='$trim1', weight='$weight1' WHERE id=$id1

您还应该切换到PDO(或mysqli)和带有绑定变量的预处理语句,以避免潜在的SQL注入。

答案 1 :(得分:2)

DESC是MySQL中的保留字。

用反引号逃脱

 `desc` = '$desc1'

答案 2 :(得分:0)

如果在phpMyAdmin中包含变量名称,则查询将不会运行,例如:

UPDATE chondas SET model='$model1', yearstart=$yearstart1,
yearstop=$yearstop1, **desc='$desc1'**, hp='$hp1', 
engine='$engine1',trim='$trim1', weight='$weight1' WHERE id=$id1

此外,如果混合使用“”和“例如:"UPDATE chondas SET model='$model1'...

,PHP将无法运行