-1

我不明白这一点:

我将更新一个mysql数据库。

mysql_query("UPDATE image Set title = '".$ed1."', desc = '".$ed2."', cat = '".$ed3."', privacy = '".$ed4."' WHERE id = '".$id."'");

但它显示:

错误 1064

和:

您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在 desc = [...] 附近使用的正确语法

编辑: 感谢您的回复。我改名了!现在它起作用了;)

4

2 回答 2

4

DESC 是 SQL 中的保留字。如果你想使用它,你需要引用它:

mysql_query("UPDATE `image` Set `title` = '".$ed1."', `desc` = '".$ed2."', `cat` = '".$ed3."', `privacy` = '".$ed4."' WHERE `id` = '".$id."'");

如果可以的话,你应该尽量避免使用保留字作为字段名;这里有一个列表:http: //dev.mysql.com/doc/refman/5.0/en/reserved-words.html

您还应该考虑从mysql_*函数迁移,因为它们已被弃用。您应该考虑改用 PDO 或 mysqli - 它们都可以帮助您编写更安全的 SQL。

于 2012-11-14T20:24:34.067 回答
1

DESCMySQL 中的保留字。你需要用反引号来逃避它。尝试

UPDATE image Set title = '".$ed1."', `desc` = ...
于 2012-11-14T20:24:12.360 回答