MySQLタイムスタンプ-なぜすべてゼロなのか?
-
10-07-2019 - |
質問
PHPMyAdminを使用していますが、" timestamp"というMySQLテーブルの列があります。タイプ(サプライズ!)は TIMESTAMP
で、「属性」では ON UPDATE CURRENT_TIMESTAMP
に設定しました。
ただし、新しいレコードはそれぞれ次のようなタイムスタンプを取得します。
0000-00-00 00:00:00
デフォルト値を明示的にnoneに設定しましたが、保存して見に戻ると、上記のようにすべてゼロに設定されています。
関連するPHPは、このクエリでのページヒットを記録します。
$query = "INSERT INTO `pagehit` (user_id, pageurl)
VALUES ('" . $userid . "', '" . $pageurl . "')";
すべてがXAMPPの下で実行されています。
不足しているものは何ですか?
解決
不足しているものは何ですか?
更新しません:)
DEFAULT CURRENT_TIMESTAMP
を ON UPDATE CURRENT_TIMESTAMP
他のヒント
デフォルト値を属性に設定する代わりに、 CURRENT_TIMESTAMP
に設定してみてください。
timestamp
列が挿入時間のみをキャプチャする場合は、使用のみ
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
それ以外の場合、変更時間の場合は、次のように使用します
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
私の場合、このように動作します:
phpMyAdminの場合:
ALTER TABLE `name_table` ADD `name_row` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
PHPシンタックスの行:
date('Y-m-d H:i:s')
所属していません StackOverflow