如何在数据库中获取和存储时间戳

时间:2014-01-10 02:29:24

标签: php mysql database datetime timestamp

如何在提交表单时自动将日期/时间信息发送到我的数据库?我正在创建一个评论框,我的“评论”表中有一个名为“created”的列(我将其设置为“datetime”类型),我想要发送日期和时间信息,以便我可以用我的页面上的评论显示它。

这是我必须从我的页面代码发送的内容,还是我可以设置数据库,以便每次从表单接收新数据时自动存储时间戳?我正在使用phpMyAdmin来管理我的数据库,以防万一。

这是我现在发送表单信息的代码:

<?php 
if (isset($_POST['submit'])) {
$required_fields = array("author", "body");
validate_presences($required_fields);

if (empty($errors)) {
    $author = mysql_prep($_POST['author']);
    $body = mysql_prep($_POST['body']); 
    $page_name = ($_POST['page_name']);

    $query  = "INSERT INTO comments (";
    $query .= "  author, body, page_name";
    $query .= ") VALUES (";
    $query .= "  '{$author}', '{$body}', '{$page_name}'";
    $query .= ")";
    $result = mysqli_query($connection, $query);

    if ($result) {
        redirect_to("new_admin.php");
    } else {
            // Failure
            $_SESSION["message"] = "There was an error that prevented the comment from being saved.";
    }
}
} else {
    $author = "";
    $body = "";
}
?>

任何帮助都会很棒,谢谢!!

2 个答案:

答案 0 :(得分:0)

看起来像这样:

$query  = "INSERT INTO comments (";
$query .= "  author, body, page_name, date_Added";
$query .= ") VALUES (";
$query .= "  '{$author}', '{$body}', '{$page_name}', NOW()";
$query .= ")";
$result = mysqli_query($connection, $query);

你也可能需要

ALTER TABLE comments ADD date_added date time;

或者您可以通过添加如下列来为数据库填充它:

ALTER TABLE comments ADD date_Added TIMESTAMP DEFAULT CURRENT_TIMESTAMP

答案 1 :(得分:0)

在db表定义中,您可以为字段设置默认值,包括新行和更新时的timestamp / datetime。这意味着您不必更改上述代码(给定上述方案)。

http://dev.mysql.com/doc/refman/5.1/en/timestamp-initialization.html