1

我正在尝试完成获取当前用户会话(如果存在)然后将其与数据库进行比较,以及loggedIn值= 1(表示loggedIn)并计算存在与此where子句匹配的单行。如果存在,则显示已登录,否则,显示登录表单(如下if{} else{}所示)

我有一个具有功能的模型:

function check_if_loggedin(){
    #get user session id from db.
        $sess = $this->session->userdata('session_id');
    #set numerical value of successfully logged in equal 1
        $loggedInSetSuccess = 1;
    #compare session id to match in db (can only have only 1 match)
        $sessionsDbCompare = $this->db->get_where('Client',array('session_id'=>$sess,'loggedIn'=>$loggedInSetSuccess));

    if($sessionsDbCompare->count_all_results() = 1) {
    # User has valid session(valid sessID+loggedIn=0, show welcome
        echo 'Logged in baby';
        # show account pref   
    }
    else{
      # user doesnt have both a valid session and loggedIn is set to 0, show login form
      echo 'login form here';
    }  
}

问题是 -if($sessionsDbCompare->count_all_results() = 1) {我的 IDe 正在警告我,我应该使用count_all_results() == 1or count_all_results() === 1. 抱歉,这有点新手,我想我有点困惑,因为 count_all_results() 是一个函数。(我确实理解比较运算符,例如“1”==“01”)

4

4 回答 4

3

您应该==这样使用 if 语句:

if($sessionsDbCompare->count_all_results() == 1) { ... 

您始终可以使用var_dump($sessionsDbCompare->count_all_results());或类似方法来检查返回的值...

于 2012-11-09T02:22:02.607 回答
1

你应该使用这个

count_all_results() == 1

你拥有它的方式是1 分配给它的剩余部分

IDE 还担心 count_all_results() 可能返回 false 和 0。这就是为什么它建议三个 === 但不要担心。两个等于将解决它

于 2012-11-09T02:21:26.447 回答
1

这一行:

if($sessionsDbCompare->count_all_results() = 1) {

应该:

if($sessionsDbCompare->count_all_results() == 1) {
于 2012-11-09T02:21:42.453 回答
0

你应该使用 $this->db->count_all() 而不是 $this->db->count_all_results()

于 2013-12-16T09:06:55.580 回答