wpdb update add current timestampが機能しない


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

まだ0000-00-00 00:00:00を保存しています... db col(edittimestamp NOT NULL DEFAULT '0000-00-00 00:00:00')
user759235

問題%dは%sであるはずです。私はそれがサーバの時刻ではない現在のタイムゾーンを保存していることがわかり
user759235

回答:


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')
);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.