错误的日期时间存储在数据库中

时间:2014-11-19 13:50:38

标签: mysql datetime

我的表看起来像这样(...,date1,date2,date3,date4,date5,...)

并编写类似这样的代码:

date_default_timezone_set('Europe/London');

$date = date("Y-m-d H:i:s");

$query = mysqli_query($db, "INSERT INTO table (date1, date2, date3, date4, date5) VALUES ('$date','$date','$date','$date','$date');

问题是date2有我的服务器纽约日期时间,而date1,date3,date4和date5有伦敦日期时间。

怎么可能?我为所有属性使用了相同的变量$ date。 在表格中,它们都被定义为datetime NOT NULL

3 个答案:

答案 0 :(得分:0)

我不熟悉mysqli(我实际上使用的是PDO),但也许您应该验证您的数据库是否具有日期字段的默认值。

另外,如果我没错,你应该在查询中使用双引号。

最后,你应该注意SQL注入wikipedia.org/wiki/SQL_injection)。您的查询可能容易受到攻击。

此致

Jonathan F.

答案 1 :(得分:0)

试试这个,添加反引号更改' $ date'进入'" 。$ date。 "'

"INSERT INTO `table` (`date1`, `date2`, `date3`, `date4`, `date5`) VALUES ('" .$date . "','" .$date . "','" .$date . "','" .$date . "','" .$date . "');

答案 2 :(得分:0)

我发现了导致问题的原因。 date2属性实际上名为last_activity_date,该名称导致了问题。我不确定为什么这个名字引起了这个问题,但是当我重命名它时,问题就消失了。