2009-05-07 9 views
5

Sto usando PHPMyAdmin e ho una colonna di tabella MySQL chiamata "timestamp". Il tipo (sorpresa!) È TIMESTAMP e in "attributi" l'ho impostato su ON UPDATE CURRENT_TIMESTAMP.MySQL Timestamp: perché tutti gli zeri?

Tuttavia, ogni nuovo record ottiene un timestamp che assomiglia a questo:

0000-00-00 00:00:00 

ho impostato in modo esplicito il valore di default a nessuno, ma quando salvo e tornare a guardare, è impostato su tutti zeri come sopra.

La relativa pagina di record PHP colpisce con questa query:

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

Il tutto è in esecuzione in XAMPP.

Cosa mi manca?

+0

Grazie a tutti per sottolineare la cosa più ovvia che io in qualche modo didn capisco :) –

risposta

9

Che cosa mi manca?

non si aggiorna :)

Usa DEFAULT CURRENT_TIMESTAMP insieme ON UPDATE CURRENT_TIMESTAMP

10

Provare a impostare il valore predefinito su CURRENT_TIMESTAMP invece di inserirlo negli attributi.

MySQL Reference

+0

Meno di un secondo! :) – Quassnoi

4

Se la colonna timestamp cattura solo il tempo di inserimento quindi utilizzare solo

timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP 

Altrimenti se è per tempo di modifica quindi utilizzare come segue

timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
1

Nel mio caso funziona così:

In phpMyAdmin:

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

In PHP sintassi per la riga:

date('Y-m-d H:i:s') 
Problemi correlati