我到处寻找,但我似乎无法找到正确的代码。我有一个html表单,使用“日期”输入从用户那里获取日期。
的index.html:
<form name="myform" action="process.php" method="POST">
Date: <input type="date" name="date"><br>
<input type="submit" value="Submit">
</form>
Process.php:
$link=mysqli_connect("my.sql.server", "username", "psswd", "database_name")
$date = $_POST['date'];
mysqli_query($link,"INSERT INTO visit_exclude_dates (date) VALUES (CAST $date AS DATE)");
表格中出现的$ date的值是yyyy-mm-dd格式,我能够成功写入数据库。我的问题是,当我读取数据库时,日期显示为0000-00-00。所以我认为问题在于这一行:
mysqli_query($link,"INSERT INTO visit_exclude_dates (date) VALUES (CAST $date AS DATE)");
编辑: 我想请注意,visit_exclude_dates是我的表的名称
答案 0 :(得分:1)
尝试在查询中的日期字段周围添加刻度。如果你确定输入是Y-m-d格式,它很可能会解决你的问题:
$date = date("Y-m-d", strtotime($_POST['date']));
$result = mysqli_query($link,"INSERT INTO visit_exclude_dates (date) VALUES ('{$date}')");
if(!$result) {
echo "Error: " . $link->error);
die();
}
$result->close();
$link->close();
答案 1 :(得分:0)
<强> Use strtotime 强>
您需要强制用户必须输入的特定模式。