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语句的写法

  1. where('name', 'mary')或where('name =', 'mary'):表示查询条件是name字段值是mary
  2. where(array('name'=>'mary', 'id >'=>'1'));:表示查询条件有两个,name字段值是mary并且id字段值是1

通过last_query()方法可以获得通过连贯操作,由AR拼装的SQL语句

$this->db->last_query();

通过AR只能执行比较简单的查询,如果是复杂查询,建议使用$this->db->query($sql, $data)进行查询

原文地址:https://www.cnblogs.com/iamsupercola/p/4631829.html