以下是通过phpMyAdmin导出的感兴趣的表:
CREATE TABLE IF NOT EXISTS `users` (
`ip` varchar(20) NOT NULL,
`lastcheck` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY `ip` (`ip`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
以下是查询:
mysql_query("REPLACE INTO users SET ip = '$uip', lastcheck = '$tim'") or throwerror("part2 ".mysql_error());
$ tim设置为time();
现在由于某种原因,lastcheck仍然设置为00:00:00。
有人可以帮忙吗?感谢。
答案 0 :(得分:4)
我不确定我是否理解你的问题,查看列lastcheck声明CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP这意味着当你更新(ip ='$ uip')这一列时,自动更新日期也会发生在lastcheck上。这意味着您可以按如下方式写下更新语句:
REPLACE INTO users SET ip = '$uip';
那也应该更新lastcheck字段,我认为最好使用mysql日期函数存储日期/时间,而不是在php中编写它们并将它们保存为数据库中的字符串......
答案 1 :(得分:2)
尝试使用日期('Y-m-d H:i:s')代替时间()
php中的time()返回一个unix时间戳,这不是MyySQL datetime的有效插入
希望这会有所帮助