Codeigniter返回变量并检查它的值

时间:2014-10-29 14:17:15

标签: php mysql codeigniter

只想将一个变量从模型返回到控制器,然后检查它的值是0还是1,但它不起作用。我使用Codeigniter。你能检查我的代码并帮我找出错误。

这是我的模特:

public function did_get_status($id){        

        $this->db->select('*');
        $this->db->from('members'); 
        $this->db->where('id',$id);     
        $query = $this->db->get();

        if ($query->num_rows() == 1) {  

    $row = $query->row();
    return array(
    'member_status' => $row->member_status, 
    );
        }
        else{
         return false;
        }   

   } 

这是我的控制器:

$status_info = $this->model_users->did_get_status($id);
$status = $status_info['member_status'];        
                if ($status === 0) {
                    //
                } 
                else if ($status === 1) {
                    //
                }                   
            }

3 个答案:

答案 0 :(得分:3)

我认为首先要检查你从功能中获得的值。 喜欢这是我的控制器

$status_info = $this->model_users->did_get_status($id);
    var_dump($status_info);

如果将其打印为数组,则将值与此类型匹配

$status = $status_info['member_status'];        
            if ($status == 0) {
                //
            } 
            else if ($status == 1) {
                //
            }                   
        }

替换" ==="用" =="因为回归类型可能不是一些。像数组返回1,0作为字符串和1,o在这里是intiger。

答案 1 :(得分:1)

要考虑的明显要点:

数据库中是否只有一个匹配此ID?

您是否尝试使用双等于而不是三等于?

答案 2 :(得分:1)

这一切都是可以调试的。

$status = $status_info['member_status'];

您无法执行此操作,因为该函数可以返回false。你不做错误处理。

if ($status === 0)

它可能是一种不同的数据类型,可能是一个字符串。你做了严格的比较。

使用==。或者,更好的是,在模型中修复它:(int) value

相关问题