关于语法的MYSQL错误

时间:2013-07-08 07:04:15

标签: php mysql

我一直收到错误

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近'exit,openclosed,longshort,target_one,target_two,   target_three,notes,entryd'at line 1

对于我试图从MYSQL运行的这个php脚本。

    $sql = mysql_query("INSERT INTO stockpicks (symbol, entry, exit, openclosed, longshort, target_one, target_two, target_three, notes, entrydate) 
        VALUES('$symbol','$entry','$exit','$openclosed','$longshort','$target_one','$target_two','$target_three','$notes',now())") or die (mysql_error());

问题是我没有看到错误。我已经检查过这条特殊线和周围的线条。例如,我做了'$ var'部分,这在过去给我带来了麻烦,但这似乎不是问题。我的表结构如下

id int(11)

symbol varchar(255)

entry varchar(255)

退出varchar(255)

openclosed varchar(255)

entrydate datetime

longshort varchar(255)

target_one varchar(255)

target_two varchar(255)

target_three varchar(255)

2 个答案:

答案 0 :(得分:6)

exitreserved word。如果要将其用作列名,请在反引号中引用它:

`exit`

答案 1 :(得分:0)

试试这个,

$sql = mysql_query("INSERT INTO stockpicks (symbol, entry, `exit`, openclosed, longshort, target_one, target_two, target_three, notes, entrydate) 
        VALUES('$symbol','$entry','$exit','$openclosed','$longshort','$target_one','$target_two','$target_three','$notes',now())") or die (mysql_error());
     $pid = mysql_insert_id();

请注意,使用反引号以MySQL方式转义标识符会降低普通位置的可移植性。

我要么在启用ANSI SQL模式时使用双引号,要么只提供我将来不太可能保留的变量名称。

exit是mysql中的保留字。