0

重要编辑:没有编程错误

那是我的一个错误,导致了问题。请阅读以下问题:


login()在看到用户使用以下功能登录后,我想更新用户的上次登录时间戳user_model.php

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;

}

用户成功登录后,$result->first_row()存储到$this_user变量中,然后我更新lastlogintimestamp.

所以很明显应该返回旧的值。lastlogintimestamp

问题是我很奇怪地看到返回了新值!!!


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

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

很明显,我看到了更新lastlogintimestamp的 s。

无论如何,我应该感谢Prix通过评论帮助我找到问题。我认为我现在对这个问题能做的最好的事情就是投票支持它。

4

1 回答 1

0

考虑到我的问题的评论,我知道我做错了什么。

正如他在上一条评论中所说,我应该再次感谢@Prix让我朝着正确的方向前进。(阅读此评论和接下来的 3 个评论)

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

于 2013-07-22T10:54:40.913 回答