Horodatage MySQL - Pourquoi tous les zéros?
-
10-07-2019 - |
Question
J'utilise PHPMyAdmin et j'ai une colonne de table MySQL appelée "timestamp". Le type (surprise!) Est TIMESTAMP
et, dans "attributs", je l'ai défini sur ON UPDATE CURRENT_TIMESTAMP
.
Cependant, chaque nouvel enregistrement reçoit un horodatage ressemblant à ceci:
0000-00-00 00:00:00
J'ai explicitement défini la valeur par défaut sur none, mais lorsque je sauvegarde et que je reviens à la recherche, elle est définie sur tous les zéros comme ci-dessus.
Les enregistrements de page PHP pertinents consultés avec cette requête:
$query = "INSERT INTO `pagehit` (user_id, pageurl)
VALUES ('" . $userid . "', '" . $pageurl . "')";
Tout tourne sous XAMPP.
Qu'est-ce qui me manque?
La solution
Qu'est-ce qui me manque?
Vous ne mettez pas à jour:)
Utilisez DEFAULT CURRENT_TIMESTAMP
avec ON UPDATE CURRENT_TIMESTAMP
Autres conseils
Essayez de définir la valeur par défaut sur CURRENT_TIMESTAMP
au lieu de l'insérer dans les attributs.
Si votre colonne timestamp
ne capture que le temps d'insertion, utilisez uniquement
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
Sinon, s'il s'agit d'une heure de modification, utilisez comme suit
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Dans mon cas, fonctionne comme suit:
Dans phpMyAdmin:
ALTER TABLE `name_table` ADD `name_row` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
En PHP, sintax pour la ligne:
date('Y-m-d H:i:s')