我遇到这个问题,我的代码只返回一个值。
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的相应用户名。
答案 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;
}
}