时间戳列中的WordPress Insert Now()返回全零

时间:2014-07-20 作者:Ollicca Mindstorm

我想在我的列的TIMESTAMP列中插入一个时间戳,但我总是得到全零。

这是我的插页:

$now = \'NOW()\';

// insert the date into the db
 $wpdb->insert( 
    \'wp_date\', 
    array(
        \'name\' => $name,
        \'date\' => $now    
    ), 
    array( 
        \'%s\',
        \'%s\'
    ) 
); // end insert

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

我没有尝试复制它,但可能的原因是您希望在查询中使用的是SQL函数(NOW()) 但是您“告诉”WordPress要使用的是字符串。

声明其格式为%s 意味着它被消毒并加上引号\'NOW()\' MySQL可能将其视为非常无效的时间戳。

您必须为此生成原始SQL查询(不使用insert helper),或者在PHP端生成并提供时间戳字符串。

SO网友:MaximOrlovsky

您不能使用\'NOW()\' 在里面$wpbd->insert 设置当前时间戳。我建议使用WP内置功能current_time(). 第一个参数应为\'mysql\' (获取MySQL兼容字符串)。第二个指定要在哪个时区接收结果:false 是您的服务器本地时间,true 是GMT。所以,您需要的代码是:

$now = current_time(\'mysql\', false);
的输出$now 将是服务器本地时间中的时间,例如:2014-07-20 18:46:23.

了解更多信息current_time() -- http://codex.wordpress.org/Function_Reference/current_time

结束

相关推荐

Wpdb插入和布尔型字段

我正在准备这样的插入查询:$wpdb->insert(\'table\', $data, $format); 数据数组将是:$data = array_push($data, \'resp\' => true) 问题是,布尔字段应该使用什么$格式?$format = array_push($format, \'%%\') 在法典中,我只找到了%s(用于字符串)%d(用于整数)和%f(用于浮点)。。。但是布尔人呢?