0

我很想知道如何制作一个 php 脚本,让我知道数据库中输入数据的日期(文本)。添加数据的查询结构如下:

$query = "INSERT INTO column (Data) VALUES ( NOW() )";

在数据库中,我创建了一个时间戳类型的日期字段。相反,从数据库中检索数据的脚本的结构是这样的

$query = mysql_query("SELECT Data FROM table WHERE id = ".$_REQUEST['id'].";");
while ($Row = mysql_fetch_array($query)) {
    echo "Created:".$Row[0];
}

输出始终是 01/01/1970,即 Unix 日期。怎么解决?请我要疯了!!!你能发布正确的代码吗?非常感谢!

4

2 回答 2

0

timestamp更好的解决方案是使用默认值创建表。timestamp这样,就列而言,您不必在表中插入任何内容。

为此,您可以在创建表时执行以下操作,

 `created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

以上将自动将列设置created为行数据插入列的时间。

如果您希望在行更新时自动更新列行,您还可以执行以下操作;这对于论坛显示该帖子的最后更新或编辑时间的专栏很有用。

`updated` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

您可以在此处阅读更多相关信息,http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html

检索值后,要从 php 获取类似日期的输出,请使用 date 函数。

有关日期函数的更多信息,请参见http://php.net/manual/en/function.date.php

还值得注意的是,您当前的代码编写得不是很好并且对 SQL 注入开放(http://en.wikipedia.org/wiki/SQL_injection),我建议您学习 php 的 PDO(http://php .net/manual/en/book.pdo.php)。

PDO 的另一个优点是,如果将来您更改数据库,那么在使用 PDO 时完成任务并不是一件非常困难的事情。

于 2013-06-06T14:08:12.943 回答
0

可以试试这个

$query = "INSERT INTO table_name (Data) VALUES (CURRENT_TIMESTAMP())";

问题似乎是您没有正确插入数据,这就是为什么您要返回那个 0 Day 时间戳。

于 2013-06-06T14:23:10.343 回答