0

我正在尝试创建一个表单,其中一部分将允许用户记录日期。我在网上找到了一段代码,它为用户创建了一个日历来选择他们的日期,但是当我尝试将它上传到数据库时,我得到一个空查询错误。谁能看到我的错误在哪里?我正在尝试查找有关在 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");
}
4

2 回答 2

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");
}

** 此外,在数据库查询中使用用户输入之前,请务必先对其进行转义。

于 2013-10-03T10:38:06.537 回答
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 返回的日期格式,使其适合常规日期格式。

于 2013-10-03T10:46:17.690 回答