现在我有这样的代码:
$mysqldate = date(time());
mysql_query("INSERT INTO permissions (date)
VALUES ('$mysqldate')");我在插入之前也进行了转义,但我的问题是时间存储为全0。我想知道mysql中的列数据类型会存储如下内容:
1311602030一个unix时间戳,然后适当地允许我在查询中按最近的日期排序。
发布于 2011-07-25 22:15:50
如果数据库中的时间戳列是INTEGER类型,则可以执行以下操作
mysql_query("INSERT INTO permissions (date) VALUES ('".time()."')");作为整数值,您还可以执行排序操作,并通过date()函数将其从PHP转换回可读的日期/时间格式。如果数据库中的时间戳列的类型为DATETIME,则可以执行以下操作
mysql_query("INSERT INTO permissions (date) VALUES ('".date('Y-m-d H:i:s')."')");或
mysql_query("INSERT INTO permissions (date) VALUES (NOW())");发布于 2011-07-25 21:59:43
尝试:
mysql_query("INSERT INTO permissions (date) VALUES ('".$mysqldate."')");发布于 2011-07-25 22:04:14
date()函数需要一个字符串作为第一个参数,这是格式。time(),应该是第二个参数,比如: date('Y-m-d H:i:s',time())。这将返回一个字符串,您可以在DATETIME列中使用它。除此之外,如果您想存储unix时间戳,只需使用INT列。因此,您可以直接存储time()的结果,而无需调用date。(或者,正如我前面所说的,使用date()和有效的格式字符串格式化时间戳,并使用日期、日期时间或时间戳列)。请参阅:http://www.php.net/manual/en/function.date.php和http://dev.mysql.com/doc/refman/5.1/en/datetime.html
编辑:您看到的0是因为mysql无法识别您用于列的格式(因此,如果您使用的是日期列,但传递了错误的格式,则无法识别它,因此将保存0)
https://stackoverflow.com/questions/6817231
复制相似问题