我在下面有这个页面,这是您提交表单时的操作。 我想知道如何为此添加时间函数,以便在“时间”行中添加表单提交到数据库表的时间。我尝试了很多东西,无法让它们起作用:/
<?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");
?>
答案 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')";