在CodeIgniter中验证count_all_results = 1

时间:2012-11-09 02:11:02

标签: php codeigniter comparison-operators

我正在尝试获取当前用户会话(如果存在),然后将其与数据库进行比较,以及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() == 1还是count_all_results() === 1。对不起,这是一个小新手,我想我有点困惑,因为count_all_results()是一个函数。 (我确实理解比较运算符,如“1”==“01”)

4 个答案:

答案 0 :(得分:3)

您应该使用==,因此if语句如下所示:

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

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

答案 1 :(得分:1)

你应该使用这个

count_all_results() == 1

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

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

答案 2 :(得分:1)

这一行:

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

应该是:

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

答案 3 :(得分:0)

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

相关问题