CodeIgniter学习笔记二:CI中的query_builder(AR)、连贯操作
一、开启query_builder
在application\config\database.php中添加如下代码(默认已开启):
$query_builder = TRUE;
二、查询数据
//get
$res = $this -> db -> get('test');
$list = $res -> result();
var_dump($list);
/*
array (size=7)
0 =>
object(stdClass)[18]
public 'id' => string '1' (length=1)
public 'name' => string 'lu' (length=5)
public 'title' => string 'ci learn' (length=8)
1 =>
object(stdClass)[19]
public 'id' => string '2' (length=1)
public 'name' => string 'jim' (length=3)
public 'title' => string 'jim learn ci' (length=12)
*/
三、插入数据
//insert
$data = array(
'name' => 'mary',
'title' => 'mary learn ci'
);
$bool = $this -> db -> insert('test', $data);
if ($bool) {
//受影响行数
echo $this -> db -> affected_rows();
//自增id
echo $this -> db -> insert_id();
}
四、更新数据
//update
$data = array(
'name' => 'cilover',
'title' => 'cilover learn ci'
);
//第1个参数是表名,第2个是更新后的数据,第3个是条件
$bool = $this -> db -> update('test', $data, array('id' => 1));
if ($bool) {
//受影响行数
echo $this -> db -> affected_rows();
}
五、删除数据
//delete
$bool = $this -> db -> delete('test', array('id'=>4));
if ($bool) {
//受影响行数
echo $this -> db -> affected_rows();
}
六、连贯操作
//链式操作
$res = $this -> db -> select('id,name')
-> from('test')
-> where('id >=', 1)
-> limit(3, 2)//跳过2条取3条数据
-> order_by('id desc')
-> get();
var_dump($this -> db -> last_query());
//SELECT `id`, `name` FROM `ci_test` WHERE `id` >= 1 ORDER BY `id` desc LIMIT 2, 3 var_dump($res -> result());
/*
array (size=3)
0 =>
object(stdClass)[17]
public 'id' => string '12' (length=2)
public 'name' => string 'mary' (length=4)
1 =>
object(stdClass)[16]
public 'id' => string '11' (length=2)
public 'name' => string 'mary' (length=4)
2 =>
object(stdClass)[28]
public 'id' => string '10' (length=2)
public 'name' => string 'mary' (length=4)
*/
特别要注意limit是反的,where中的id与>=之前有空格。
七、where
//where
$this -> db -> where('name', 'jim') -> get('test');
echo $this -> db -> last_query();
//SELECT * FROM `ci_test` WHERE `name` = 'jim' $this -> db -> where('name !=', 'jim') -> get('test');
echo $this -> db -> last_query();
//SELECT * FROM `ci_test` WHERE `name` != 'jim' $this -> db -> where(array('name' => 'jim', 'id >' => 2)) -> get('test');
echo $this -> db -> last_query();
//SELECT * FROM `ci_test` WHERE `name` = 'jim' AND `id` > 2
更复杂的查询可以用query实现。
CodeIgniter学习笔记二:CI中的query_builder(AR)、连贯操作的更多相关文章
- jQuery学习笔记(二)jQuery中DOM操作
目录 DOM操作分类 jQuery中的各种DOM操作 查找节点 创建节点 删除节点 复制节点 替换节点 包裹节点 属性操作 样式操作 对HTML.文本和值的操作 遍历节点 CSS-DOM操作 小结 本 ...
- redis学习笔记(二)——java中jedis的简单使用
redis怎么在java中使用,那就是要用到jedis了,jedis是redis的java版本的客户端实现,原本原本想上来就直接学spring整合redis的,但是一口吃个胖子,还是脚踏实地,从基础开 ...
- 鸟书shell 学习笔记(二) shell中正則表達式相关
通配符与正則表達式的差别 通配符是bash原生支持的语法,正則表達式是处理字符串的一种表示方式, 正則表達式须要支持的工具支持才干够 语系设置 : export LANG=C grep alias 设 ...
- dubbo学习笔记(二)dubbo中的filter
转:https://www.cnblogs.com/cdfive2018/p/10219730.html dubbo框架提供了filter机制的扩展点(本文基于dubbo2.6.0版本). 扩展接口 ...
- python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字
python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字在字符串里面插入指定分割符的方法,先把字符串变成list然后用join方法变成字符串str=' ...
- CodeIgniter学习笔记三:扩展CI的控制器、模型
一.扩展CI中的控制器 有时需要对CI中的控制器作统一操作,如进行登录和权限验证,这时就可以通过扩展CI控制器来实现. 扩展CI控制器只需要在application/core文件夹中建一个继承自CI_ ...
- WPF的Binding学习笔记(二)
原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- HTML DOM(学习笔记二)
嗯,在HTML DOM(学习笔记一)中简单描述了一下HTML DOM 是什么,这一篇将记录下来有关HTML DOM的内容! 1:DOM节点 首先,再来看一下HTML DOM的树状结构,如下图所示: 这 ...
随机推荐
- 如何获得C4C里某个code字段对应的描述信息
通过我这篇文章介绍的方法使用C4C OData服务去取服务订单数据(Sales Order): 如何用代码的方式取出SAP C4C销售订单创建后所有业务伙伴的数据 https://www.jiansh ...
- 其他信息: 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。在VS中的解决方法
第一种,不使用dataaccess,使用通用的Oracle.ManagedDataAccess,可以忽略版本问题 第二种,在属性——生成——web中iis express换成用本地IIS执行,但是这样 ...
- ABI and ISA
ABI定义了如何使用ISA. ISA定义了机器码的使用规则. http://www.delorie.com/gnu/docs/gmp/gmp_6.html ABI and ISA ABI (Appli ...
- LA 3938 动态最大连续和
题目链接:https://vjudge.net/contest/146667#problem/C 题意:动态的求一个区间的最大连续和. 分析: 看上去可以RMQ去做,但是,当分成两个部分,原来的部分的 ...
- 轻量级HTTP服务器Nginx(配置与调试Nginx维护Nginx)
轻量级HTTP服务器Nginx(配置与调试Nginx) 文章来源于南非蚂蚁 Nginx安装完毕后,会产生相应的安装目录,根据前面的安装路径,Nginx的配置文件路径为/opt/nginx/conf ...
- 2017.11.13 在C语言中是否能用函数实现模块化程序设计
第七章 用函数实现模块化程序设计 (1)为什么要用函数? @function既是函数也是功能.函数就是用来完成一定功能的的(函数就是功能),函数名就是给这个功能起一个名字,一个C程序可由一个主函数和若 ...
- git fetch和push的区别
获取fetch的用法 git-fetch用于从另一个reposoitory下载objects和refs. 命令格式为:git fetch … 其中表示远端的仓库路径.git remote add or ...
- 动画利器animate.css
使用过CSS3编写动画的同学一定感叹CSS3的强大,但是也会感到书写的麻烦.每次都要计算动画的各个参数,十分麻烦.有没有一个库能封装一些常用的CSS3动画效果.答案是肯定的,animate.css就是 ...
- C#流程控制语句
C#流程控制语句 一.选择语句 当程序中需要进行两个或两个以上的选择时,可以根据条件的判断来选择将要执行的一组语句. ?if语句 ?switch语句 二.循环语句 循环语句是对一个程序模块进行的重复操 ...
- C#中this保留字的用法
一.this保留字 this保留字一般只在构造函数.类的方法和类的实例中使用.它有以下含义: ?在类的构造函数中出现的this,则作为一个值类型,表示对正在构造的对象本身的引用. ?在类的方法中出现的 ...