当代码为 运行 时,如何将准备好的 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
添加到列的定义中。
$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
添加到列的定义中。