将日历记录上载到MySQL数据库

时间:2013-10-03 10:31:05

标签: php mysql calendar

我试图创建一个表单,其中一部分将允许用户记录日期。 我在网上找到了一段代码,为用户创建了一个日历来选择他们的日期,但当我尝试将其上传到数据库时,我得到一个空的查询错误。 任何人都可以看到我的错误在哪里?我试图找到关于在html表单中使用日历的教程,但是在我的搜索中没有任何值得的东西,如果有人可以推荐一个,我会非常感激。

    <html>
<head>
  <link href="http://ajax.googleapis.com/ajax/
libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>

  <script>
  $(document).ready(function() {
    $("#datepicker").datepicker();
  });
  </script>
</head>
<body>
<form action="uploadCalendar.php" method="post">
  <strong>Date :</strong>  <input name="date" id="datepicker" />
  <input type="submit" name="submit" value="Submit"/>
</form>
</body>
</html>

这是我将代码上传到数据库的代码。在我引入多个字段上传到数据库之前,我只使用日历元素

    $Date = $_POST['date'];

$query = $mysqli->query("INSERT INTO `calendar` (`date`) VALUES '$Date'");
if(!mysqli_query($mysqli, $query))
{
    echo "ERROR".mysqli_errno($query);
}
else
{
    header ("Location: calendar.php");
}

2 个答案:

答案 0 :(得分:0)

你将mysqli的OO版本与程序混合。

$query = $mysqli->query("INSERT INTO `calendar` (`date`) VALUES '$Date'");

如果查询成功,则返回TRUE,因此如果成功,则返回以下行:

if(!mysqli_query($mysqli, $query))

正在尝试执行另一个查询,指定TRUE作为查询值。此外,我认为您的查询中存在语法错误,即我认为由于您指定了列,因此值周围应该有()。试试这个:

$Date = $_POST['date'];

$ret = $mysqli->query("INSERT INTO `calendar` (`date`) VALUES ('" . $mysqli->real_escape_string($Date) . "');");
if(!$ret)
{
    echo "ERROR";
}
else
{
    header ("Location: calendar.php");
}

**此外,在数据库查询中使用它之前,请务必确保转义用户输入。

答案 1 :(得分:0)

我假设字段date的类型为DATE。 DATE期望日期值格式为yyyy-mm-dd。

您的日历会返回格式为mm / dd / yyyy

的值

因此,您需要更改MySQL查询中的格式:

$query = $mysqli->query("INSERT INTO `calendar` (`date`) VALUES (STR_TO_DATE('$Date', '%m/%d/%Y'))");

或者更改jQuery返回的日期格式,使其符合常规日期格式。