-1

我到处寻找,但似乎找不到正确的代码。我有一个 html 表单使用“日期”输入从用户那里获取日期。

索引.html:

<form name="myform" action="process.php" method="POST">
     Date: <input type="date" name="date"><br>
     <input type="submit" value="Submit">
</form>

进程.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 是我的表的名称

4

2 回答 2

1

尝试在查询中的日期字段周围添加刻度。如果您确定输入是 Ymd 格式,它很可能会解决您的问题:

$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();
于 2013-06-07T19:11:15.980 回答
0

使用 strtotime

您将需要强制用户必须输入的特定模式。

于 2013-06-07T19:11:06.197 回答