Codeigniter return()仅返回db中的一个字段

时间:2013-12-03 13:40:14

标签: php codeigniter

我遇到这个问题,我的代码只返回一个值。

class Userlogin extends CI_Model {

    function login($username,$password) {
       $this -> db -> select('userid', 'username', 'password');
       $this -> db -> from('user');
       $this -> db -> where('username', $username);
       $this -> db -> where('password', $password);
       $this -> db -> limit(1);

       $query = $this -> db -> get();
         if($query -> num_rows() == 1)
           {             
             return $query->result();            
           }
           else
           {
             return false;
           }
    }

}

以下是使用特定模型的代码

 if($result)
{     
     $sess_array = array();

     foreach($result as $row)
     {     
       $sess_array = array(
         'userid' => $row->userid,
         'username' => $row->username
       );       
       $this->session->set_userdata('logged_in', $sess_array);
     }

问题是它只返回用户ID而不是该id的相应用户名。

3 个答案:

答案 0 :(得分:2)

在您的代码中,您有以下一行:

$this -> db -> select('userid', 'username', 'password');

您不能将多个参数传递给Codeigniter的db层的select方法。它必须以逗号分隔,如下所示:

$this -> db -> select('userid, username, password');

希望这能帮到你!

参考:http://ellislab.com/codeigniter/user-guide/database/active_record.html#select

答案 1 :(得分:1)

select方法需要一个包含所需列的字符串。试试

$this -> db -> select('userid, username, password');

答案 2 :(得分:1)

你可以做这样的事情

<强>模型

class Userlogin extends CI_Model {

function login($username,$password) {
   $this -> db -> select('userid, username, password');
               -> from('user')
               -> where('username', $username)
               -> where('password', $password)
               -> limit(1);

   $query = $this -> db -> get();

     if($query -> num_rows() == 1)
       {             
         return $query->result_array();            
       }

      return false;
  }

}