0

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

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 行

4

2 回答 2

2

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

于 2013-07-24T19:20:55.833 回答
2

order 是保留字,需要用反引号括起来:

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

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

于 2013-07-24T19:21:13.453 回答