日期没有发送到mysql

时间:2013-06-07 19:08:13

标签: php mysql date phpmyadmin html-form

我到处寻找,但我似乎无法找到正确的代码。我有一个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是我的表的名称

2 个答案:

答案 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

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