如何添加时间表已提交

时间:2014-03-09 20:09:18

标签: php mysql forms date mysqli

我在下面有这个页面,这是您提交表单时的操作。 我想知道如何为此添加时间函数,以便在“时间”行中添加表单提交到数据库表的时间。我尝试了很多东西,无法让它们起作用:/

<?php
require 'db/connect.php';

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

    $player = $_POST['inputWho'];
    $offense = $_POST['inputWhat'];
    $where = $_POST['inputPlace'];
    $proof = $_POST['inputProof'];
    $comments = $_POST['inputComments'];

    $sqlinsert = "INSERT INTO offenses (player, reason, place, proof, comments) VALUES  ('$player', '$offense', '$where', '$proof', '$comments')";

    if (!mysqli_query($db, $sqlinsert)) {
        die('Error inserting new record.'. "<br />". mysqli_error($db));
    } //end of nested if

} //end of if

header("Location: success.php");

?>

3 个答案:

答案 0 :(得分:4)

我通常解决此问题的方法是向表中添加一个如下所示的列:

created_time datetime default current_timestamp

您甚至不必将它包含在INSERT语句中,它将在您创建行时自动设置。


编辑:以上语句仅适用于TIMESTAMP类型,而不适用于DATETIME。 (目前很多人可能仍然使用MySQL 5.5或更早版本。)这在本手册中讨论:http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html

您可以使用Skywalker's answer来避免此版本问题。 (或者不使用MySQL。)


如果您在更新时也需要列集,那就是另一个问题。

我发现通常最好从数据库内部获取时间,而不是从Web服务器提供时间。这可以避免Web服务器时间与数据库服务器稍微不同步的任何问题。 (您甚至可能有多个彼此不同步的Web服务器。)

答案 1 :(得分:1)

让你的sql像这样:

$sqlinsert = "INSERT INTO offenses (player, reason, place, proof, comments, time) VALUES  ('$player', '$offense', '$where', '$proof', '$comments', NOW())";

使用MySQL函数NOW()。

答案 2 :(得分:0)

试试这个:

date_default_timezone_set('America/Los_Angeles');
$dateEnquiry = date("Y-m-d H:i:s", time());

$sqlinsert = "INSERT INTO offenses (player, reason, place, proof, comments, time) VALUES  ('$player', '$offense', '$where', '$proof', '$comments', '$dateEnquiry')";