簡體   English   中英

Codeigniter where 和 where db 使用數組查詢

[英]Codeigniter where and where db query with an array

我有一個包含以下數據的用戶表:

id     first_name

10     user one
21     user two
39     user 3

所以我想獲取所有具有特定id的用戶,比如當我傳遞 10 和 21 的id ,我想檢索前 2 個用戶。

所以在 Codeigniter 中,我的模型中有一個函數getUsersByIds ,例如:

class UsersModel extends CI_Model{

    public function getUsersByIds($ids){  
        $data = [];
        foreach($ids as item){
            $this->db->where('user_id',(int)$item);
        }
        $rs = $this->db->get('users');
        return $rs->result_array();
    }
}

現在,每當我嘗試通過以下方式在控制器中調用上述模型時:

$this->load->model('UsersModel');
var_dump($this->UsersModel->getUsersByIds([10,21])) //this is null

上面的var_dumpnull 我懷疑問題發生在 foreach 循環上。 有沒有一種方法可以where in Codeigniter 中使用上述動態數據where in wherewhere in

您的案例不應該真正使用查詢構建器中的 where 方法。 它應該使用與數組完全配合使用的 where_in。

所以你的模型函數應該是這樣的:

class UsersModel extends CI_Model{

   public function getUsersByIds($ids){
      if (empty($ids) {
         return array();
      }  
      $this->db->where_in('user_id',$ids);
      $rs = $this->db->get('users')->result_array();
      return $rs;
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM