2013-10-16 51 views
-1

我想将PHP中的日期时间保存到我的数据库中,但我不能。数据库中的日期时间值始终设置为0000-00-00 00:00:00。我究竟做错了什么?无法在数据库中保存php日期时间

我的代码:

$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

Y/M/d H:我:没什么? –

+0

@DonovanCharpin Nope – Loko

+0

请使用搜索。 [任何这些](http://stackoverflow.com/search?q=%5Bphp%5D+%5Bmysql%5D+0000-00-00+00%3A00%3A00)会有帮助 –

回答

5

尽量把引号:

$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

谢谢,它的工作! – Jigberto

+0

没有问题,记住你的日期没有引号看起来像奇怪的方程'2013-10-16' – Elen

+0

是你的个人资料图片你的真实身体?你看起来很好,很聪明:)我怎么可以跟你说话 – Jigberto

4

简单,日期时间是字符串,而不是整数。

$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

你可以使用,

$dt = date("Y-m-d H:i:S"); 
$sql = "UPDATE wp_posts SET post_date = '$dt', post_date_gmt = '$dt' WHERE ID = $id"; 
+0

这不会帮助真正的问题在这里。您可以将其作为评论发布。 (尽管在这里实际使用面向对象的方法可能更受欢迎) –

+0

这并没有解决原始问题。报价在这种情况下并没有什么不同。 –

0

而不是使用日期时间从PHP,你现在应该使用mysql inbuit()函数,没有必要写额外的代码行在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) 
    ) 

干杯!

0

你为什么不使用mysql 的时间戳功能,用于新表

$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(); 
相关问题