model类如何写才能实现真正的MVC??在换成mongodb时不动C和V层???
本帖最后由 张三的歌 于 2016-8-19 09:32 编辑以下代码都是在model层的东西
public function getSomeFieldsByWhere($where, $fields, $num, $offset){
$sql = "SELECT {$fields} FROM {$this->_table}{$where} LIMIT {$offset}, {$num}";
//die($sql);
$query = $this->db->query($sql);
$res = $query->result_array();
return $res;
}
上面这种肯定是不防止注入的,但是用起来方便,因为where里面可以随便写,比如order by , group by, like等等
public function getAllFieldsByWhere($fields,$where=array(),$num,$offset){
//字段
$this->db->select($fields);
$query = $this->db->get_where($this->_table, $where,$offset,$num);
return $query->result_array();
}
而这种发放有局限性,因为where里面不能写很多东西,只能写查询的字段,但是如果加上了$this->db->like这种东西,参数会有7-9个
有没有一种方法参数传递的少,还能够很自由的传递参数
有人说重构query buider但是我不知道这个在哪里,怎么重构
谢谢了 $this->db->where()
本身就可以传数组或者字符串的
例如
$where = "name='Joe' AND status='boss' OR status='active'";
$this->db->where($where); 楼主可以用用 ORM。。。 liugoe 发表于 2016-8-19 09:36
$this->db->where()
本身就可以传数组或者字符串的
例如
是的,但是不可以传
order byiddesc这样的东西 如果想传,我还需要加参数,那么传参数就需要7-9个就不便捷了 Hex 发表于 2016-8-19 14:16
楼主可以用用 ORM。。。
感觉那个稍稍有点看不懂...... 张三的歌 发表于 2016-8-19 16:42
感觉那个稍稍有点看不懂......
其实我个人比较喜欢直接写 SQL,因为这样可以更清楚我要做什么事情。 Hex 发表于 2016-8-21 13:38
其实我个人比较喜欢直接写 SQL,因为这样可以更清楚我要做什么事情。
原始的语句,如果写在控制器层的话,不利于分开 张三的歌 发表于 2016-8-22 09:13
原始的语句,如果写在控制器层的话,不利于分开
当然不能写到控制器里。写在模型里。
页:
[1]