繁体   English   中英

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

[英]Inserting today date from form to database

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

注册

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

<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="Изпрати" />

这是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';
}
?>

可能是什么问题?

编辑:

在mysql中,日期行为-'date'

编辑2:

我忘记了NOW()...完美地工作并且非常简单。

我不希望用户插入日期。

然后,不要使其成为用户提交的表单的一部分。 就目前而言,即使它是hidden元素,用户也可以对其进行修改以插入所需的任何日期值。 您不希望用户插入日期,但是您当前的代码要求用户插入日期。

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

INSERT INTO table (text, date) VALUES (?, NOW())

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

如果您不希望用户输入日期,而是在服务器端处理日期。 我的答案是使用PHP进行句柄处理,否则您也可以使用NOW() mysql端处理。

$dt = date('Y-m-d: H:i:s');

或者您可以将其存储在数据库中作为时间戳:

$dt=date("Y-m-d H:i:s");
$dt= strtotime($dt);

并在前面检索

date("Y-m-d H:i:s",$dt)

替换为您的代码:

$ query =“将表插入(文本,日期)VALUES(?,NOW())”“;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM