MySQL:"你的SQL语法错误...在'desc附近'VALUES('Idea','Description')'"

Fri*_*c14 5 php mysql mysql-error-1064

我试图让MySQL为我的表单提交工作.我尝试插入表格时遇到问题.
当我将信息放入我的表单并单击提交时(在此示例中,信息在一个字段中为"Idea",在另一个字段中为"Description")我得到此响应:

"您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在'desc附近使用正确的语法'VALUES('Idea','Description')'在第1行"

我正在从Web服务器运行.php文件来执行此脚本.

这是我目前的代码:

<?php

mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("date_ideas") or die(mysql_error());
$title=$_POST['title'];
$title=mysql_real_escape_string($title);
$desc=$_POST['desc'];
$desc=mysql_real_escape_string($desc);
$submit="INSERT INTO ideas (title, desc) VALUES ('$title','$desc');";

mysql_query($submit) or die(mysql_error());

echo ("Idea submitted.  Click <a href='Webroot/submit.php'>here</a> to go back and post another idea.");
?>
Run Code Online (Sandbox Code Playgroud)

如果你调用所使用的变量的回声它会成功传递信息,所以这不是问题.

Qua*_*noi 11

desc是保留关键字(DESCENDINGin的缩写ORDER BY).

将其添加到反引号中:

INSERT INTO ideas (title, `desc`) VALUES ('$title','$desc');
Run Code Online (Sandbox Code Playgroud)


Mat*_*ndy 5

可能是因为desc是 SQL 中的关键字。尝试不同的名称。desc用于按降序对结果进行排序。

一般来说,我建议避免对列名使用保留字。