MySql语法错误,插入

时间:2013-07-24 19:17:51

标签: php mysql insert

我正在尝试插入用户输入的值以及一个字符串,该字符串是开始日期的月份+用户输入的季度的组合。怎么了。请帮忙!!!!!

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "addUser")) {
$date=  $_POST['start_date'];
$d=date_parse_from_format("Y-m-d",$date);
  $insertSQL = sprintf("INSERT INTO contacts (USER_NAME, START_DATE, THREE_MONTH, SIX_MONTH, TWELVE_MONTH, QUARTER, ORDER) VALUES (%s, %s, %s, %s, %s, %s,'".$d["month"].$d["year"].$_POST['quarter']."' )",
                       GetSQLValueString($_POST['user'], "text"),
                       GetSQLValueString($_POST['start_date'], "date"),
                       GetSQLValueString($_POST['3month'], "date"),
                       GetSQLValueString($_POST['6month'], "date"),
                       GetSQLValueString($_POST['12month'], "date"),
                       GetSQLValueString($_POST['quarter'], "text"));

错误我得到了:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   'ORDER)VALUES附近('boobz','2013-11-22','2013-11-29',   '2013-11-23','2013-11-02','第1行

2 个答案:

答案 0 :(得分:2)

ORDER是保留字。使用`或更好地将其更改为数据库结构中的其他内容。这是更好的做法。

答案 1 :(得分:2)

订单是保留字,您需要用反引号引用它:

INSERT INTO contacts (USER_NAME, START_DATE, THREE_MONTH, SIX_MONTH, TWELVE_MONTH, QUARTER, `ORDER`)

或者更好的是,不要使用保留字并使用更明智的东西。