Php 将表单输入保存到MySQL数据库:遇到错误
我试图将表单中的一些输入保存到MySQL数据库中,但收到以下错误: 未保存。您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用“desc,备注”值(第1行的“a”、“b”、“c”)的正确语法 以下是我的完整PHP代码:Php 将表单输入保存到MySQL数据库:遇到错误,php,html,mysql,forms,Php,Html,Mysql,Forms,我试图将表单中的一些输入保存到MySQL数据库中,但收到以下错误: 未保存。您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用“desc,备注”值(第1行的“a”、“b”、“c”)的正确语法 以下是我的完整PHP代码: if (isset($_POST['region'], $_POST['desc'], $_POST['remarks']) && !empty ($_POST['region']) && !empty($_POST['des
if (isset($_POST['region'], $_POST['desc'], $_POST['remarks']) && !empty ($_POST['region']) && !empty($_POST['desc']) && !empty($_POST['remarks']) )
{
$region = mysql_escape_string($_POST['region']);
$desc = mysql_escape_string($_POST['desc']);
$remarks = mysql_escape_string($_POST['remarks']);
mysql_query("INSERT INTO register (region, desc, remarks) VALUES(
'$region',
'$desc',
'$remarks') ") or die('Not saved. ' . mysql_error());
}
你能告诉我我做错了什么吗?我以前做过,但在这种情况下我似乎找不到错误(正如其他人已经指出的,<代码> DESC是SQL关键字,但是你做的<强>不/强>必须改变你的列名才能使你的查询工作。你可能会考虑这一点,但肯定不是强制性的。诀窍是(这是一个很好的习惯)。为了避免使SQL引擎混乱。因此这会引发错误:
INSERT INTO register (region, desc, remarks) ...
但这很好:
INSERT INTO register (`region`, `desc`, `remarks`) ...
尝试改变
'$region'
到
这样做
mysql_query("INSERT INTO register (`region`, `desc`, `remarks`) VALUES(
'".$region."',
'".$desc."',
'".$remarks."') ") or die('Not saved. ' . mysql_error());
}
当我将列命名为“from”和“to”时,我遇到了类似的问题,但我没有意识到它们在SQL中有特殊的意义。你的“desc”也有同样的情况。嘿,我不是问这个问题的人:Pindeded:)对不起,我快速查看了一下,确定是同一个人。可能被相似性愚弄了。。。
mysql_query("INSERT INTO register (`region`, `desc`, `remarks`) VALUES(
'".$region."',
'".$desc."',
'".$remarks."') ") or die('Not saved. ' . mysql_error());
}