wpdb update non funziona con timestamp corrente

9 mar 2014, 15:42:06
Visualizzazioni: 14.4K
Voti: 11

Sto usando $wpdb->update per aggiungere dei dati a una tabella personalizzata, sto cercando di inserire il timestamp corrente ma non salva i valori corretti (viene salvato 0000-00-00 00:00:00).

Ecco una panoramica del codice

  $wpdb->update('mytable',
      array(
          'value' => 'hello world', 
          'edit'  => date("Y-m-d h:i:s") //salva 0000-00-00 00:00:00
      ),
      array(
          'option_name' => 'la riga'
      ), 
      array('%s, %s')
  );
5
Commenti

Prova: date( "Y-m-d h:i:s", strtotime( time() );

Sormano Sormano
9 mar 2014 15:45:59

@Sormano time() restituisce un intero, non una stringa.

fuxia fuxia
9 mar 2014 15:56:41

Hai ragione, ho usato strtotime() troppe volte... codice corretto: date( "Y-m-d h:i:s", time() );

Sormano Sormano
9 mar 2014 15:58:40

ancora salva 0000-00-00 00:00:00.... colonna db(edit timestamp NOT NULL DEFAULT '0000-00-00 00:00:00')

user759235 user759235
9 mar 2014 16:06:55

trovato il problema %d dovrebbe essere %s. ma vedo che salva l'ora del server non il fuso orario corrente

user759235 user759235
9 mar 2014 16:16:59
Tutte le risposte alla domanda 1
0
19

Sembra che tu abbia risolto tutto tranne il problema con l'orario:

ho trovato il problema: %d dovrebbe essere %s. Ma vedo che salva l'orario del server non il fuso orario corrente

WordPress ha diverse funzioni relative a data/ora. In questo caso, sembra che ciò di cui hai bisogno sia current_time(), che...

Restituisce l'orario locale corrente del blog in uno dei due formati, o nel formato del tipo di dato timestamp di MySQL (es. YYYY-MM-DD HH:MM:SS) o nel formato Unix timestamp (es. epoch).

Quindi ciò che dovresti usare è:

$wpdb->update(
      'mytable',
      array(
          'value' => 'hello world', 
          'edit'  => current_time( 'mysql' )
      ),
      array(
          'option_name' => 'the row'
      ), 
      array('%s, %s')
);
9 mar 2014 16:40:01