码迷,mamicode.com
首页 > 其他好文 > 详细

CodeIgniter学习笔记(八)——CI中的AR

时间:2015-07-09 06:16:25      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

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)进行查询

CodeIgniter学习笔记(八)——CI中的AR

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!