【问题标题】:query not functioning in code igniter查询在 codeigniter 中不起作用
【发布时间】:2016-05-19 03:09:23
【问题描述】:

我正在用管理员开发这个登录系统。我目前正在制作用于验证用户类型(管理员或用户)的模型,但查询不起作用,而它几乎与具有帐户验证的模型相同。我检查了 post 参数是否返回到第二个查询,它是,但它仍然不起作用。但好的部分是,如果我对用户名进行硬编码,它可以完美运行。请帮忙。这是我的代码

login_model.php

public function can_log_in(){

    $sql ="SELECT * FROM tbl_users WHERE USERNAME = ? AND PASSWORD = ?";
    $data = array(
        'USERNAME' => $this->input->post('USERNAME'),
        'PASSWORD' => $this->input->post('PASSWORD')
        );
    $query = $this->db->query($sql, $data);

//$result = $query->result_array();
//print_r($result);
//exit;
    if ($query->num_rows() == 1){

        return true;

    }else{

        return false;
    }

}

public function returnQuery(){

    ////hard coded (works perfectly)

    //$sql ="SELECT USERCODE FROM tbl_users WHERE USERNAME = 'username' AND PASSWORD = 'password'";
    //$query = $this->db->query($sql);
    //$result = $query->result_array();

///database based.

    $sql ="SELECT USERCODE FROM tbl_users WHERE USERNAME = ? AND PASSWORD = ?";
    $data = array(
        'USERNAME' => $this->input->post('USERNAME'),
        'PASSWORD' => $this->input->post('PASSWORD')
        );


//print_r($data);exit;

    $query = $this->db->query($sql, $data);

    //print_r($query);exit; ->> output is an empty array


$result = $query->result_array();
//print_r($result);exit;


    if(count($result) > 0){
       return $result[0]["USERCODE"];
    }else{
      return 0;
    }
}

【问题讨论】:

  • 你确定 $this->input->post('USERNAME') 包含一个值吗?

标签: php sql codeigniter


【解决方案1】:

试试这个,请确保$this->input->post('USERNAME')$this->input->post('PASSWORD') 包含数据。

$sql ="SELECT * FROM tbl_users WHERE USERNAME = ? AND PASSWORD = ?";
    $data = array(
            $this->input->post('USERNAME'),
            $this->input->post('PASSWORD')
        );
    $query = $this->db->query($sql, $data);

方法应该是这样的

public function can_log_in(){

    $sql ="SELECT * FROM tbl_users WHERE USERNAME = ? AND PASSWORD = ?";
    $data = array(
              $this->input->post('USERNAME'),
              $this->input->post('PASSWORD')
            );

    $query = $this->db->query($sql, $data);

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

        return true;

    }else{

        return false;
    }

}

你的returnQuery可能是这样的

public function returnQuery(){


    $sql ="SELECT USERCODE FROM tbl_users WHERE USERNAME = ? AND PASSWORD = ?";
    $data = array(
             $this->input->post('USERNAME'),
             $this->input->post('PASSWORD')
           );
    $query = $this->db->query($sql, $data);
    $result = $query->result_array();

    if($query->num_rows() > 0){
       return $result[0]["USERCODE"];
    }else{
      return 0;
    }
}

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 2017-12-01
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    相关资源
    最近更新 更多