web-dev-qa-db-ja.com

wpdbアップデートで現在のタイムスタンプを追加できない

そのため、$ 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')
  );
8
user759235

時間の問題以外はすべて解決したようです。

問題%dは%sであるべきです。しかし、現在のタイムゾーンではなくサーバーの時間を節約できることがわかります

WordPressには日付/時刻関連の機能がいくつかあります 。この場合、必要なものは current_time() のように聞こえます。

ブログの現在の現地時間をMySQLのタイムスタンプデータ型フォーマット(すなわちYYYY-MM-DD HH:MM:SS)またはUnixタイムスタンプフォーマット(すなわちEpoch)のいずれかで返します。

だからあなたが必要とするものは次のとおりです。

$wpdb->update(
      'mytable',
      array(
          'value' => 'hello world', 
          'edit'  => current_time( 'mysql' )
      ),
      array(
          'option_name' => 'the row'
      ), 
      array('%s, %s')
);
11
s_ha_dum