Обновление wpdb добавляет текущую метку времени не работает

10

Поэтому, используя обновление $ wpdb->, добавьте некоторые данные в пользовательскую таблицу, пытаясь добавить текущую временную метку, но не сохраняете нужные данные (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')
  );
user759235
источник
Попробуйте:date( "Y-m-d h:i:s", strtotime( time() );
Сормано
@Sormano time()возвращает целое число, а не строку.
fuxia
1
Вы правы, много раз использовали strtotime () ... правильный код:date( "Y-m-d h:i:s", time() );
Sormano
все еще сохраняю 0000-00-00 00:00:00 .... db col ( editотметка времени NOT NULL DEFAULT '0000-00-00 00:00:00')
user759235
обнаружил, что проблема% d должна быть% s. но я вижу, что это экономит время сервера, а не текущий часовой пояс
user759235

Ответы:

14

Вы, кажется, решили все, кроме проблемы со временем:

обнаружил, что проблема% d должна быть% s. но я вижу, что это экономит время сервера, а не текущий часовой пояс

WordPress имеет ряд функций, связанных с датой и временем . В данном случае это звучит так, как вам нужно current_time(), что ...

Возвращает текущее местное время блога в одном из двух форматов: формат типа метки времени MySQL (т. Е. YYYY-MM-DD ЧЧ: ММ: СС) или формат метки времени Unix (т. Е. Эпоха).

Итак, что вам нужно, это:

$wpdb->update(
      'mytable',
      array(
          'value' => 'hello world', 
          'edit'  => current_time( 'mysql' )
      ),
      array(
          'option_name' => 'the row'
      ), 
      array('%s, %s')
);
s_ha_dum
источник