繁体   English   中英

MySQL错误1064-但是没有错误?

[英]MySQL Error 1064 - but no misstake?

我不明白这一点:

我将更新一个mysql数据库。

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

但它显示:

错误1064

和:

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

编辑:感谢您的答复。 我已经改名了! 现在可以了;)

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。

DESCMySQL中保留字 您需要使用反引号将其转义。 尝试

UPDATE image Set title = '".$ed1."', `desc` = ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM