2009-05-07 21 views
5

Estoy usando PHPMyAdmin y tengo una columna de tabla MySQL llamada "marca de tiempo". El tipo (¡sorpresa!) Es TIMESTAMP, y en 'atributos' lo he configurado en ON UPDATE CURRENT_TIMESTAMP.Marca de tiempo de MySQL: ¿por qué todos los ceros?

Sin embargo, cada nuevo registro se pone una marca de tiempo que tiene este aspecto:

0000-00-00 00:00:00 

he establecido explícitamente el valor por defecto a ninguno, pero al guardar y volver a mirar, se establece que todos los ceros como anteriormente.

la página correspondiente registros PHP golpea con esta consulta:

$query = "INSERT INTO `pagehit` (user_id, pageurl) 
VALUES ('" . $userid . "', '" . $pageurl . "')"; 

La cosa entera se ejecuta con XAMPP.

¿Qué me estoy perdiendo?

+0

Gracias a todos por señalar lo obvio que de alguna manera yo no no lo veo :) –

Respuesta

9

¿Qué me falta?

Usted no actualiza :)

Uso DEFAULT CURRENT_TIMESTAMP junto con ON UPDATE CURRENT_TIMESTAMP

10

Intente establecer el valor predeterminado en CURRENT_TIMESTAMP en lugar de poner eso en los atributos.

MySQL Reference

+0

¡Menos de un segundo! :) – Quassnoi

4

Si su columna timestamp capta sólo el tiempo de inserción a continuación, utilizar solamente

timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP 

De lo contrario, si se trata de tiempo de modificación luego usar como sigue

timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
1

En mi caso funciona así:

En phpMyAdmin:

ALTER TABLE `name_table` ADD `name_row` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; 

En PHP sintaxis para la fila:

date('Y-m-d H:i:s') 
Cuestiones relacionadas