multiple where condition codeigniter

前端 未结 7 1040
感情败类
感情败类 2021-02-01 15:16

How can I convert this query to active record?

\"UPDATE table_user 
 SET email = \'$email\', last_ip = \'$last_ip\' 
 where username = \'$username\' and status =         


        
相关标签:
7条回答
  • 2021-02-01 15:53

    Try this

    $data = array(
                   'email' =>$email,
                   'last_ip' => $last_ip
                );
    
    $where = array('username ' => $username , 'status ' => $status);
    $this->db->where($where);
    $this->db->update('table_user ', $data); 
    
    0 讨论(0)
  • 2021-02-01 15:57

    you can use both use array like :

    $array = array('tlb_account.crid' =>$value , 'tlb_request.sign'=> 'FALSE' );
    

    and direct assign like:

    $this->db->where('tlb_account.crid' =>$value , 'tlb_request.sign'=> 'FALSE');
    

    I wish help you.

    0 讨论(0)
  • 2021-02-01 16:02

    it's late for this answer but i think maybe still can help, i try the both methods above, using two where conditions and the method with the array, none of those work for me i did several test and the condition was never getting executed, so i did a workaround, here is my code:

    public function validateLogin($email, $password){
            $password = md5($password);
            $this->db->select("userID,email,password");
            $query = $this->db->get_where("users", array("email" => $email));
            $p = $query->row_array();
    
            if($query->num_rows() == 1 && $password == $p['password']){  
                return $query->row();
            }
    
        }
    
    0 讨论(0)
  • 2021-02-01 16:07

    you can use an array and pass the array.

    Associative array method:
    $array = array('name' => $name, 'title' => $title, 'status' => $status);
    
    $this->db->where($array); 
    
    // Produces: WHERE name = 'Joe' AND title = 'boss' AND status = 'active'
    

    Or if you want to do something other than = comparison

    $array = array('name !=' => $name, 'id <' => $id, 'date >' => $date);
    
    $this->db->where($array);
    
    0 讨论(0)
  • 2021-02-01 16:11

    Yes, multiple calls to where() is a perfectly valid way to achieve this.

    $this->db->where('username',$username);
    $this->db->where('status',$status);
    

    http://www.codeigniter.com/user_guide/database/query_builder.html

    0 讨论(0)
  • 2021-02-01 16:16

    you can try this function for multi-purpose

    function ManageData($table_name='',$condition=array(),$udata=array(),$is_insert=false){
    $resultArr = array();
    $ci = & get_instance();
    if($condition && count($condition))
        $ci->db->where($condition);
    if($is_insert)
    {
        $ci->db->insert($table_name,$udata);
        return 0;
    }
    else
    {
        $ci->db->update($table_name,$udata);
        return 1;
    }
    

    }

    0 讨论(0)
提交回复
热议问题