如何检查MYSQL字段是否为null并替换为当前时间戳?

时间:2016-10-13 20:59:47

标签: php mysql wordpress

我正在使用Wordpress并获得了一个包含不同pid s(个人ID)的数据库和一个已设置为activatedValue或{{NULL的字段pid 3}}。

我收到activatedValue并需要找到NULL - 值。如果该字段为current_time(),我想将其替换为$pid = '52'; // example for a personal id $activatedValue = $wpdb->get_var( "SELECT activatedValue FROM $table_name WHERE pid = '$pid'" ); if( is_null($activatedValue) ) { // replace activatedValue in database with current time } 。我想到了这样的事情:

$pid = '52';

if ( ! empty ( $pid ) ) {

  global $wpdb;
  $table_name = $wpdb->prefix . "prelaunchr";
  $activatedValue = $wpdb->get_var( "SELECT activated FROM $table_name WHERE pid = '$pid'" );

  if ( is_null($activatedValue) ) {
    $currentTime = current_time();
    $wpdb->query("UPDATE $table_name SET activated = NOW() WHERE pid = '$pid'");
  }
} 

我该怎么做?

实现这一目标对我来说有几个问题。我试过这个:

private extractData(res: Response) {
  let body = res.json();

  return body.data || {};
}

2 个答案:

答案 0 :(得分:1)

如果要更新数据库记录中的值,则需要使用UPDATE运行wpdb::query()语句。

if( is_null($example_field) ) {
    $wpdb->query("UPDATE $table_name SET example_field = NOW() WHERE pid = '$pid'");
}

答案 1 :(得分:1)

我认为你可以修改数据库,而不是使用timestamp使用datetime,然后:

$pid = '52';

if ( ! empty ( $pid ) ) {

  global $wpdb;
  $table_name = $wpdb->prefix . "prelaunchr";
  $activatedValue = $wpdb->get_var( "SELECT activated FROM $table_name WHERE pid = '$pid'" );

  if ( is_null($activatedValue) ) {
    //Here you can change the TimeZone of the system//
     date_default_timezone_set('America/Chicago');
    $date = date('Y/m/d h:i:s', time());
    $wpdb->query("UPDATE $table_name SET activated = '{$date}' WHERE pid = '$pid'");
  }
}