我试图创建一个表单,其中一部分将允许用户记录日期。 我在网上找到了一段代码,为用户创建了一个日历来选择他们的日期,但当我尝试将其上传到数据库时,我得到一个空的查询错误。 任何人都可以看到我的错误在哪里?我试图找到关于在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");
}
答案 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返回的日期格式,使其符合常规日期格式。