CodeIgniter学习笔记(八)——CI中的AR
AR(Active Record)
在启用AR的情况下(CI3.0默认已经启动并且没有配置项),通过$this->db的get方法可以获得一张表的结果集
// AR会自动加上表前缀,因此get方法中的表名不用加上表前缀 $res = $this->db->get('user'); foreach ($res->result() as $item) { echo $item->name . "<br />"; }
通过insert方法可以简单的插入一条记录,参数是表名和关联数组
$data = array('name'=>'mary', 'password'=>md5('mary')); $result = $this->db->insert('user', $data);
通过update方法修改记录,第一个参数是表明,第二个参数是修改后的内容,用关联数组表示,第三个参数是查询条件
$data = array ('email'=>'mary@gmail.com', 'password'=>md5('123456')); $this->db->update('user', $data, array('name'=>'mary'));
通过delete方法删除一条记录,参数一是表名,参数二是查询条件
$this->db->delete('user', array('name'=>'mary'));
连贯操作,对于比较复杂的SQL语句,可以使用AR提供的连贯操作进行查询
$result = $this->db->select('id, name') ->from('user') ->where('id >=', 1) ->limit(3,1) ->order_by('id desc ') ->get();
注意:limit的参数顺序与SQL中的顺序是相反的,第一个参数表示显示的条数,第二个参数表示跳过的条数
不同查询条件下where语句的写法
- where('name', 'mary')或where('name =', 'mary'):表示查询条件是name字段值是mary
- where(array('name'=>'mary', 'id >'=>'1'));:表示查询条件有两个,name字段值是mary并且id字段值是1
通过last_query()方法可以获得通过连贯操作,由AR拼装的SQL语句
$this->db->last_query();
通过AR只能执行比较简单的查询,如果是复杂查询,建议使用$this->db->query($sql, $data)进行查询