Aktualizacja wpdb dodaje bieżący znacznik czasu nie działa


10

Więc używając aktualizacji $ wpdb->, aby dodać trochę danych do tabeli niestandardowej, próbując dodać bieżący znacznik czasu, ale nie zapisuję właściwych rzeczy (0000-00-00 00:00:00 to jest zapisywane).

kod przeglądowy

  $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')
  );

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

@Ormormano time()zwraca liczbę całkowitą, a nie ciąg znaków.
fuxia

1
Masz rację, używałeś strtotime () wiele razy ... odpowiedni kod:date( "Y-m-d h:i:s", time() );
Sormano

wciąż zapisuję 0000-00-00 00:00:00 .... db col ( editznacznik czasu NIE NULL DOMYŚLNY „0000-00-00 00:00:00”)
759235

znaleziono problem% d powinien być% s. ale widzę, że oszczędza czas serwera, a nie bieżącą strefę czasową
759235

Odpowiedzi:


14

Wyglądało na to, że rozwiązałeś wszystko oprócz czasu:

znaleziono problem% d powinien być% s. ale widzę, że oszczędza czas serwera, a nie bieżącą strefę czasową

WordPress ma wiele funkcji związanych z datą / czasem . W tym przypadku wygląda na to, że potrzebujesz tego current_time(), co ...

Zwraca bieżący czas lokalny bloga w jednym z dwóch formatów, albo typu danych datownika MySQL (tj. RRRR-MM-DD GG: MM: SS), albo formatu datownika Unix (tj. Epoki).

Tak więc powinieneś potrzebować:

$wpdb->update(
      'mytable',
      array(
          'value' => 'hello world', 
          'edit'  => current_time( 'mysql' )
      ),
      array(
          'option_name' => 'the row'
      ), 
      array('%s, %s')
);
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.