wpdb更新添加当前时间戳不起作用


10

因此,使用$ wpdb-> update向自定义表中添加一些数据,尝试添加当前时间戳,但并没有保存正确的内容(已保存0000-00-00 00:00:00)。

概述代码

  $wpdb->update('mytable',
      array(
          'value' => 'hello world', 
          'edit'  => date("Y-m-d h:i:s") //saves 0000-00-00 00:00:00
      ),
      array(
          'option_name' => 'the row'
      ), 
      array('%s, %s')
  );

试试:date( "Y-m-d h:i:s", strtotime( time() );
Sormano

@Sormano time()返回整数,而不是字符串。
fuxia

1
您是正确的,多次使用strtotime()...正确的代码:date( "Y-m-d h:i:s", time() );
Sormano 2014年

仍在保存0000-00-00 00:00:00 .... db col(edittimestamp NOT NULL
DEFAULT'0000-00-00

发现问题%d应该是%s。但我看到它可以节省服务器时间,而不是当前时区
user759235 2014年

Answers:


14

您似乎已经解决了所有问题,但时间问题除外:

发现问题%d应该是%s。但我看到它节省了服务器时间,而不是当前时区

WordPress具有许多与日期/时间相关的功能。在这种情况下,听起来您需要的是current_time()...

以两种格式之一返回博客的当前本地时间,即MySQL的时间戳数据类型格式(即YYYY-MM-DD HH:MM:SS)或Unix时间戳格式(即纪元)。

因此,您需要的是:

$wpdb->update(
      'mytable',
      array(
          'value' => 'hello world', 
          'edit'  => current_time( 'mysql' )
      ),
      array(
          'option_name' => 'the row'
      ), 
      array('%s, %s')
);
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.