[英]What is wrong with my SQL/PHP syntax here?
因此,我在网站上建立了一个下载数据库,该数据库使我能够跟踪下载次数,并且我正尝试为我和我的同胞建立一个前端,以将新下载内容插入数据库。 我主要使用PHP设置前端。
设置页面调度的方式消除了表单发布的可能性,因此,我让JS序列化数据并重新加载页面,然后在PHP中反序列化数据,将值粘贴到mysql查询中,然后尝试运行它。
这是我的SQL代码在PHP内部的样子:
$sql = "INSERT INTO dl (id, file, desc) VALUES ('$idd', '$file', '$desc')";
变成这个字符串:
INSERT INTO dl (id, file, desc) VALUES ('a56', 'test.zip', 'cake')
但是当页面尝试运行它时,出现此错误:
您的SQL语法有误; 检查与您的MySQL服务器版本相对应的手册,以在第1行的'desc)VALUES('a56','test.zip','cake')'附近使用正确的语法
而且奇怪的是,运行查询的代码行不在第1行,而在第28行。
任何帮助表示赞赏:)
desc
是MySQL中的保留关键字 。
推荐的解决方法是使用反引号 。 从MySQL手册 :
如果标识符包含特殊字符或为保留字,则在引用标识符时必须将其引用。
如果无法重命名表或列,则将有问题的标识符包装在反引号(`)中:
$sql = "INSERT INTO dl (id, `file`, `desc`) VALUES ('$idd', '$file', '$desc')";
也看一下这个问题: 何时在MySQL中使用单引号,双引号和反引号
desc
是SQL中的保留字。
它(与ASC
一起)用于确定结果的排序顺序。
请更改desc的列名,该列名由MYSQL保留。 有关更多详细信息,请参见MYSQL保留字上的保留字列表。
请尝试这个。
$sql = "INSERT INTO dl (`id`, `file`, `desc`) VALUES ('".$idd."', '".$file."', '".$desc."')";
希望这对您有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.