我有一个包含时间戳类型列 last_login 的用户表。结构:
CREATE TABLE IF NOT EXISTS `User` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(80) NOT NULL,
`username` varchar(80) NOT NULL,
`password` varchar(80) NOT NULL,
`facebook_login` varchar(3) NOT NULL DEFAULT 'no',
`facebook_id` varchar(50) NOT NULL,
`last_login` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=19 ;
我想在用户使用当前时间戳登录时更新它。我愿意:
$sql = "Update User set last_login = ".time()."
Where id = :id";
$stmt = $db->prepare($sql);
$stmt->bindParam("id", $user->id);
$stmt->execute();
在 mysql 日志文件中,我可以看到正在执行此查询:
Update User set last_login = 1381949425 Where id = '1'
但不知何故,它说“没有行受到影响”。这怎么可能?表中有一个 id 为 1 的用户...