当代码为 运行 时,如何将准备好的 stmt 的时间戳添加到 mysql 数据库?

How to add a timestamp of a prepared stmt to mysql database when code is run?

$stmt = $conn->prepare("INSERT INTO users (username,created) VALUES (?,?)");
$stmt->bind_param("ss", $_POST['username-reg','whatdoiputhere?']);
$stmt->execute();

我想添加一个 "now" date/timestamp 也可以同时插入,以便我可以跟踪用户创建帐户的时间。我需要 write/reference 获取当前日期的函数吗?还是有一个我只需要参考的已知功能?我是 php 的新手,抱歉

您可以使用 NOW() :

$stmt = $conn->prepare("INSERT INTO users (username,created) VALUES (?, NOW())");
$stmt->bind_param("s", $_POST['username-reg']);
$stmt->execute();

您可以利用 MySQL 的 timestamp initialization feature

这通过使用 default current_timestamp 选项向 table 添加一个 timestamp 列来实现:

create table users (
    user_id int primary key auto_increment,
    username varchar(50),
    ts_created timestamp default current_timestamp
);

有了这个设置,您就不必再担心该列了。插入时忽略即可,数据库会根据需要自动设置:

$stmt = $conn->prepare("INSERT INTO users (username) VALUES (?)");
$stmt->bind_param("ss", $_POST['username-reg']);
$stmt->execute();

注意:如果您还希望在记录被修改时更新时间戳,您可以将on update current_timestamp添加到列的定义中。