zoukankan      html  css  js  c++  java
  • 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)进行查询

  • 相关阅读:
    Java数据持久层
    一张图解决ThreadLocal
    类加载器及其加载原理
    手写LRU缓存淘汰算法
    使用归并排序思想解决逆序对数量问题
    Same Origin Policy 浏览器同源策略详解
    如何估算线程池的线程数?
    分布式锁为什么要选择Zookeeper而不是Redis?
    SpringBoot的SpringMVC使用FastJson依赖时LocalDateTime全局配置序列化格式
    数据库中的枚举值如何存储
  • 原文地址:https://www.cnblogs.com/iamsupercola/p/4631829.html
Copyright © 2011-2022 走看看