无法在数据库中保存php datetime

时间:2013-10-16 11:33:26

标签: php mysql wordpress

我想将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";

5 个答案:

答案 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();