0

我正在尝试将表单中的一些输入保存到我的 MySQL 数据库中,但我收到此错误:

没有保存。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'desc,remarks) VALUES('a', 'b', 'c' 附近使用正确的语法

这是我的完整 PHP 代码:

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()); 


             }

你能告诉我我做错了什么吗?我以前做过,但在这种情况下我似乎找不到错误。:(

4

2 回答 2

0

正如其他人已经指出的那样,desc是 SQL 关键字,但您不必更改列名即可使查询正常工作。您可能会考虑这一点,但绝对不是强制性的。诀窍是(这是一直做的好习惯)您应该始终使用反引号“`”引用列名,以免使 SQL 引擎混淆。所以这会抛出一个错误:

INSERT INTO register (region, desc, remarks) ...

但这很好:

INSERT INTO register (`region`, `desc`, `remarks`) ... 
于 2012-12-02T19:03:15.563 回答
0

尝试改变

'$region' 

 '".$region."'

并这样做

      mysql_query("INSERT INTO register (`region`, `desc`, `remarks`) VALUES(

        '".$region."', 
        '".$desc."', 
        '".$remarks."') ") or die('Not saved. ' . mysql_error()); 


         }
于 2012-12-02T19:18:51.373 回答