我正在尝试获取当前用户会话(如果存在),然后将其与数据库进行比较,以及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”)
答案 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)