今天插入从表单到数据库的日期

Gor*_*oro 0 php sql

我正在尝试在处理表单时插入日期,但是在MySQL中插入就像

0000-00-00

我不希望用户插入日期.这是我的表格

<form action="upload.php" method="post" enctype="multipart/form-data">
<textarea type="text" name="text" cols="40" rows="10"></textarea><br />
<input type="hidden" name="dt"/>
<input type="submit" name="upload" id="upload" value="???????" />
Run Code Online (Sandbox Code Playgroud)

这是upload.php

<?php

if (isset($_POST['upload'])) {

$text = $_POST['text'];
$dt = date('Y-m-d', strtotime($_POST['Date']));

        $db = new mysqli("localhost", "*****", "", "****");

        if (mysqli_connect_error()) {
            printf("Connect failed: ", mysqli_connect_error());
        }
        mysqli_set_charset($db, "UTF8");

        $query = "INSERT INTO table (text, date) VALUES (?, ?)";
        $conn = $db->prepare($query);
        if ($conn == TRUE) {
            $conn->bind_param("si",$text, $dt );
            if (!$conn->execute()) {
                echo 'error insert';
            } else {
                header("Location: ../admin/index.php");
                exit;
            }
        } else {
            die("Error preparing Statement");
        }
} else {
    echo 'error';
}
?>
Run Code Online (Sandbox Code Playgroud)

可能是什么问题?

编辑:

在mysql中,日期行是类型 - '日期'

EDIT2:

我忘了NOW()......工作得很完美而且很简单.

Dav*_*vid 5

我不希望用户插入日期.

然后不要将其作为用户提交表单的一部分.就目前而言,即使它是一个hidden元素,用户也可以修改它以插入他们想要的任何日期值.您不希望用户插入日期,但您当前的代码要求用户插入日期.

如果您只是希望它是系统已知的日期,则可以INSERT在数据库级别的语句中完全执行此操作:

INSERT INTO table (text, date) VALUES (?, NOW())
Run Code Online (Sandbox Code Playgroud)

这样,数据库本身就会生成当前日期,而不是依赖于用户提交的任何内容.此时,您可以input从表单中完全删除日期,并从构建数据库查询的PHP代码中删除参数.