请求将指定SQL查询转换为CodeIgniter框架的查询格式
没问题,我来帮你把这条SQL转换成CodeIgniter的查询构造器写法,这样更贴合框架规范,也更安全易维护。我把目前主流的CodeIgniter 3和CodeIgniter 4版本的写法都列出来,你根据自己的项目版本选择就行:
CodeIgniter 3 实现方式
// 在你的Model或Controller中使用 $this->db->select('image.image_id, image.image_name, category.category_name, image.image_description, image.image, image.status, image.cdate, image.user_id'); $this->db->from('tbl_image as image'); // 左连接tbl_imagecat表,指定关联条件 $this->db->join('tbl_imagecat as category', 'image.category_id = category.category_id', 'left'); // 添加status等于0的条件 $this->db->where('image.status', 0); // 匹配user_id在指定数组中的记录(保留原SQL的重复0逻辑) $this->db->where_in('image.user_id', [0, 0]); // 按image_id排序 $this->db->order_by('image.image_id'); // 执行查询并获取结果 $query = $this->db->get(); // 返回对象数组,若需要关联数组可改用$result_array() $result = $query->result();
CodeIgniter 4 实现方式
// 在你的Model或Controller中使用 $db = \Config\Database::connect(); $query = $db->table('tbl_image as image') ->select('image.image_id, image.image_name, category.category_name, image.image_description, image.image, image.status, image.cdate, image.user_id') ->join('tbl_imagecat as category', 'image.category_id = category.category_id', 'left') ->where('image.status', 0) ->whereIn('image.user_id', [0, 0]) ->orderBy('image.image_id') ->get(); // 返回对象数组,若需要关联数组可改用getResultArray() $result = $query->getResult();
小提示:原SQL里的(1 AND ...)是恒成立的条件,在查询构造器中可以直接忽略,不会影响最终结果。如果只需要获取单行数据,CI3可以用$query->row(),CI4可以用$query->getRow()。
内容的提问来源于stack exchange,提问作者Anonymous Alligator
相关产品推荐
相关产品推荐

