[英]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_dump
是null
。 我懷疑問題發生在 foreach 循環上。 有沒有一種方法可以where in
Codeigniter 中使用上述動態數據where in
where
和where 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.