Timestamp MySQL: perché tutti gli zeri?
-
10-07-2019 - |
Domanda
Sto usando PHPMyAdmin e ho una colonna della tabella MySQL chiamata " timestamp. " Il tipo (sorpresa!) È TIMESTAMP
, e in 'attributi' l'ho impostato su ON UPDATE CURRENT_TIMESTAMP
.
Tuttavia, ogni nuovo record ottiene un timestamp simile a questo:
0000-00-00 00:00:00
Ho impostato esplicitamente il valore predefinito su none, ma quando salvo e torno a guardare, è impostato su tutti gli zeri come sopra.
La pagina dei record PHP pertinente viene visualizzata con questa query:
$query = "INSERT INTO `pagehit` (user_id, pageurl)
VALUES ('" . $userid . "', '" . $pageurl . "')";
Il tutto funziona sotto XAMPP.
Cosa mi sto perdendo?
Soluzione
Cosa mi sto perdendo?
Non aggiorni :)
Utilizza DEFAULT CURRENT_TIMESTAMP
insieme a ON UPDATE CURRENT_TIMESTAMP
Altri suggerimenti
Prova a impostare il valore predefinito su CURRENT_TIMESTAMP
invece di inserirlo negli attributi.
Se la colonna timestamp
acquisisce solo il tempo di inserimento, utilizzare solo
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
Altrimenti, se è per il tempo di modifica, utilizzare come segue
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Nel mio caso funziona così:
In phpMyAdmin:
ALTER TABLE `name_table` ADD `name_row` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
Nella sintassi di PHP per la riga:
date('Y-m-d H:i:s')