我正在使用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'附近使用正确的语法。
答案 0 :(得分:3)
DESC
是reserved 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'...