我的表看起来像这样(...,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
。
答案 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,该名称导致了问题。我不确定为什么这个名字引起了这个问题,但是当我重命名它时,问题就消失了。