MySQL 时间戳 - 为什么全为零?
我正在使用 PHPMyAdmin,并且有一个名为“时间戳”的 MySQL 表列。 类型(令人惊讶!)是 TIMESTAMP
,在“属性”中我将其设置为 ON UPDATE CURRENT_TIMESTAMP
。
但是,每个新记录都会获得一个如下所示的时间戳:
0000-00-00 00:00:00
我已明确将默认值设置为无,但是当我保存并返回查看时,它被设置为全零,如上所述。
相关的 PHP 记录页面点击了这个查询:
$query = "INSERT INTO `pagehit` (user_id, pageurl)
VALUES ('" . $userid . "', '" . $pageurl . "')";
整个事情都在 XAMPP 下运行。
我缺少什么?
I'm using PHPMyAdmin and I've got a MySQL table column called "timestamp." The type (surprise!) is TIMESTAMP
, and in 'attributes' I've set it to ON UPDATE CURRENT_TIMESTAMP
.
However, each new record gets a timestamp that looks like this:
0000-00-00 00:00:00
I have explicitly set the default value to none, but when I save and come back to look, it is set to all zeros as above.
The relevant PHP records page hits with this query:
$query = "INSERT INTO `pagehit` (user_id, pageurl)
VALUES ('" . $userid . "', '" . $pageurl . "')";
The whole thing is running under XAMPP.
What am I missing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您不更新:)
将
DEFAULT CURRENT_TIMESTAMP
与ON UPDATE CURRENT_TIMESTAMP
一起使用You don't update :)
Use
DEFAULT CURRENT_TIMESTAMP
along withON UPDATE CURRENT_TIMESTAMP
尝试将默认值设置为
CURRENT_TIMESTAMP
,而不是将其放入属性中。MySQL 参考
Try setting the default value to
CURRENT_TIMESTAMP
instead of putting that in the attributes.MySQL Reference
如果您的
timestamp
列仅捕获插入时间,则仅使用否则,如果它用于修改时间,则使用如下所示
If your
timestamp
column captures only the insertion time then use onlyOtherwise if it is for modification time then use like as follows
在我的例子中,工作原理如下:
在 phpMyAdmin 中:
在行的 PHP 语法中:
In my case works like this:
In phpMyAdmin:
In PHP sintax for the row: