首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Codeigniter使用数组查询where和where数据库

Codeigniter使用数组查询where和where数据库
EN

Stack Overflow用户
提问于 2020-11-08 07:09:23
回答 1查看 57关注 0票数 1

我有一个包含以下数据的用户表:

代码语言:javascript
运行
复制
id     first_name

10     user one
21     user two
39     user 3

因此,我希望获取具有特定id的所有用户,例如,当我传递id为10和21时,我希望检索前2个用户。

在Codeigniter中,我的模型中有一个函数getUsersByIds,如下所示:

代码语言:javascript
运行
复制
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();
    }
}

现在,每当我尝试通过以下方式调用控制器中的上述模型时:

代码语言:javascript
运行
复制
$this->load->model('UsersModel');
var_dump($this->UsersModel->getUsersByIds([10,21])) //this is null

上面的var_dumpnull。我怀疑这个问题发生在foreach循环中。有没有一种方法可以像上面那样用动态数据做wherewhere in Codeigniter?

EN

Stack Overflow用户

发布于 2020-11-08 20:40:38

您的案例不应该真正使用查询构建器中的where方法。它应该使用与数组完全配合使用而构建的where_in。

因此,您的模型函数应该如下所示:

代码语言:javascript
运行
复制
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;
   }
}
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64733302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档