Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 存储用户的上次登录时间戳 重要编辑:没有编程错误_Sql_Codeigniter - Fatal编程技术网

Sql 存储用户的上次登录时间戳 重要编辑:没有编程错误

Sql 存储用户的上次登录时间戳 重要编辑:没有编程错误,sql,codeigniter,Sql,Codeigniter,那是我犯的错误,导致了问题。请阅读下面的问题: 我想在看到用户使用user_model.php下面的登录函数登录后更新用户上次登录的时间戳 用户成功登录后,$result->first\u行存储到$this\u用户变量中,然后更新lastlogentimestamp 因此很明显,应该返回lastlogintimestamp的旧值 问题是,非常奇怪的是,我看到返回了新值 非常简单:我看到的结果是因为一个非常独立的查询,比如SELECT*FROM user 在那里,我看到了一个拥有自己的LastLo

那是我犯的错误,导致了问题。请阅读下面的问题:

我想在看到用户使用user_model.php下面的登录函数登录后更新用户上次登录的时间戳

用户成功登录后,$result->first\u行存储到$this\u用户变量中,然后更新lastlogentimestamp

因此很明显,应该返回lastlogintimestamp的旧值

问题是,非常奇怪的是,我看到返回了新值

非常简单:我看到的结果是因为一个非常独立的查询,比如SELECT*FROM user

在那里,我看到了一个拥有自己的LastLoginItemsTamp的用户列表

很明显,我看到的是更新的lastlogintimestamps


无论如何,我应该感谢你通过评论帮助我发现问题。我想我现在对这个问题所能做的就是投票支持它。考虑到我问题的评论,我知道我做错了什么

我应该再次感谢他在最后一次评论中所说的为我指明了正确的方向。阅读下面的3个单词


我投票决定结束这个问题,并接受它作为一个没有答案的答案。

现在最好这样使用:UPDATE`user`SET`LastLoginItemStamp`=现在WHERE`id`=?“用户名”=?限制1,然后可以从阵列中删除不需要的时间。我会给你一个MySQL函数的当前时间戳。不,不,我的回答是关于一个已经被删除的评论。好的,我试试新方法。但是1。为什么当前查询不应该做这项工作?2.MySQL的NOW也返回UTC时间戳吗?不,正如文档所说,MySQL的NOW在服务器的时区中返回。但是我想把每一个时间戳都存储在UTC时区。老实说,我在这里没有做任何事情,我只是给你指出了正确的方向,所以我想你可以把上面的评论作为一个答案,并标记它来结束这个问题。
public function login($username, $password)
{

    $this->db->select('id, username, email, type, language, lastlogintimestamp');
    $this->db->from('user');
    $this->db->where('username', $username);
    $this->db->where('password', $password);
    $this->db->limit(1);
    $result = $this->db->get();

    if ($result->num_rows() > 0)
    {
        $this_user = $result->first_row();

        $this->db->query(
            'UPDATE `user` SET `lastlogintimestamp` = ? WHERE `id` = ? LIMIT 1',
            array(time(), $this_user->id)
        );

        return $this_user;
    }

    return FALSE;

}