我想将PHP的日期时间保存到我的数据库中,但我不能。数据库中的日期时间值始终设置为0000-00-00 00:00:00
。我做错了什么?
我的代码:
$today = new DateTime();
$dt = $today->format('Y-m-d H:i:s');
$sql = "UPDATE wp_posts SET post_date = $dt, post_date_gmt = $dt WHERE ID = $id";
答案 0 :(得分:6)
尝试加上引号:
$today = new DateTime();
$dt = $today->format('Y-m-d H:i:s');
$sql = "UPDATE wp_posts SET post_date = '$dt', post_date_gmt = '$dt' WHERE ID = $id";
答案 1 :(得分:4)
简单来说,datetime是字符串,而不是整数。
$today = new DateTime();
$dt = $today->format('Y-m-d H:i:s');
$sql = "UPDATE wp_posts SET post_date = '$dt', post_date_gmt = $dt WHERE ID = $id";
将更好地工作:)
答案 2 :(得分:0)
你可以使用,
$dt = date("Y-m-d H:i:S");
$sql = "UPDATE wp_posts SET post_date = '$dt', post_date_gmt = '$dt' WHERE ID = $id";
答案 3 :(得分:0)
不使用PHP的日期时间,而应使用mysql inbuit now()函数,不需要在php中编写额外的代码行。
$sql = "UPDATE wp_posts SET post_date = now(), post_date_gmt = now() WHERE ID = $id";
n你可以在你的表字段中设置Now(),这样你就不需要设置为查询,当记录插入更新它会自动设置当前日期时间。
CREATE TABLE tablename
(
fiedlId int NOT NULL,
fieldName varchar(50) NOT NULL,
fieldDate datetime NOT NULL DEFAULT NOW(),
PRIMARY KEY (fiedlId)
)
干杯!!
答案 4 :(得分:0)
为什么不使用mysql的时间戳功能 for new table
$sql = CREATE TABLE newtb (current_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
or
$sql = CREATE TABLE newtb (current_time DATETIME DEFAULT NOW());
修改表格
$sql = CREATE TABLE newtb MODIFY current_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
or
$sql = CREATE TABLE newtb MODIFY current_time DATETIME DEFAULT NOE();