-4

可能重复:
这个查询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 the textarea' 附近使用。

4

3 回答 3

3

DESCmysql 中的保留字,因此您需要使用反引号:

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 注入。

于 2013-01-08T23:12:38.703 回答
2

DESC是 MySQL 中的保留字。

用反引号逃脱它

 `desc` = '$desc1'
于 2013-01-08T23:12:30.283 回答
0

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

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

此外,如果您混合使用 "" 和 '',PHP 将无法运行,例如:"UPDATE chondas SET model='$model1'...

于 2013-01-08T23:16:57.150 回答