la actualización de wpdb agrega que la marca de tiempo actual no funciona

10

Entonces, usando la actualización $ wpdb-> para agregar algunos datos a una tabla personalizada, tratando de agregar la marca de tiempo actual pero no está guardando las cosas correctas (0000-00-00 00:00:00 esto se guarda).

código de resumen

  $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
fuente
Prueba:date( "Y-m-d h:i:s", strtotime( time() );
Sormano
@Sormano time()devuelve un número entero, no una cadena.
fuxia
1
Tienes razón, usó strtotime () muchas veces ... código correcto:date( "Y-m-d h:i:s", time() );
Sormano
sigue guardando 0000-00-00 00:00:00 .... db col ( editmarca de tiempo NO NULL DEFAULT '0000-00-00 00:00:00')
user759235
descubrió que el problema% d debería ser% s. pero veo que ahorra el tiempo del servidor, no la zona horaria actual
user759235

Respuestas:

14

Parecía haber resuelto todo menos el problema con el tiempo:

descubrió que el problema% d debería ser% s. pero veo que ahorra la hora del servidor, no la zona horaria actual

WordPress tiene una serie de funciones relacionadas con la fecha / hora . En este caso, parece que lo que necesita es current_time(), que ...

Devuelve la hora local actual del blog en uno de dos formatos, ya sea el formato de tipo de datos de marca de tiempo de MySQL (es decir, AAAA-MM-DD HH: MM: SS) o el formato de marca de tiempo de Unix (es decir, época).

Entonces, lo que debe necesitar es:

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