2011-06-02 21 views
6

aquí está una función Database_update_entry en mi modelo CodeIgniter que se ejecuta al enviar satisfactoriamente el formulario.illegal 0000-00-00 00:00:00 indicación de fecha y hora enviada por php a mysql usando codeigniter

<?php 
    function update_entry(){ 
     $data = array(
      'sl' => $this->input->post('item_sl'), 
      'item_name' => $this->input->post('item_name'), 
      'img_url' => $this->input->post('img_url'), 
      'sound_url' => $this->input->post('sound_url'), 
      'price' => $this->input->post('price'), 
      'unit' => $this->input->post('unit'), 
      'timestamp' => time(), 
     ); 
     echo "current time: ". time(); 
     $this->db->update(MY_TABLE_NAME, $data); 
    } 
?> 

la consulta de base de datos es ejecutado bien .... pero el momento en que se vuelve a establecer en la tabla de MySQL es 0000-00-00 00:00:00 mientras que la declaración <?php echo time() ?> muestra en el navegador ... que es una marca de tiempo de UNIX válida ... puede check the timestamp validity here.

aquí es una captura de pantalla de la tabla que toma los datos de tabla de MySQL después update_query éxito http://s3.amazonaws.com/awesome_screenshot/658523?AWSAccessKeyId=0R7FMW7AXRVCYMAPTPR2&Expires=1307020816&Signature=AncPjnzG9p9QTX7zebZp7c9teB0%3D

lo que estoy haciendo mal ??? ¿Cómo puedo pasar una marca de tiempo legal de mi php a mySQL? [p.s. He comprobado que el campo de marca de tiempo en mi mesa de MySQL es un campo de marca de tiempo]

Respuesta

5

MySQL timestamp campo aceptar yyyy-mm-dd H:i:s formato de fecha por lo que tiene que pasar la fecha en este formato no la marca de tiempo UNIX

en lugar de esta

'timestamp' => time() 

uso

'timestamp' => date('Y-m-d H:i:s') 

Si realmente desea almacenar UNIX time stamp cambio el tipo de campo a CHAR

+0

¿Tengo que especificar cualquier char ** ** longitud para el campo ??? –

+0

@syedrakib: el CHAR (11) está bien para el campo timestamp –

+0

gracias brother :) –

3

Uso date('Y-m-d H:i:s', time());

;)

3

es necesario proporcionar una cadena de marca de tiempo, no es un entero. Proveedores: tiempo

'timestamp' => date('Y-m-d H:i:s', time()), 
+1

pensé que mysql tiene sus capacidades de convertir una marca de tiempo UNIX en una marca de tiempo mySQL si se agrega UNIX timestamp en el campo timestamp –

2

formato: date('Y-m-d H:i:s', time())

+0

pensé que mysql sus capacidades de convertir una marca de tiempo UNIX en una marca de tiempo mySQL si se agrega la marca de tiempo UNIX en el campo de marca de tiempo ... gracias :) –

Cuestiones relacionadas