ci框架 查询构造器类
$this->db->get()
该方法执行 SELECT 语句并返回查询结果,可以得到一个表的所有数据:
$query = $this->db->get('mytable'); // Produces: SELECT * FROM mytable
第二和第三个参数用于设置 LIMIT 子句:
$query = $this->db->get('mytable', 10, 20); // Executes: SELECT * FROM mytable LIMIT 20, 10 // (in MySQL. Other databases have slightly different syntax)
你应该已经注意到了,上面的方法的结果都赋值给了一个 $query 变量,通过这个变量, 我们可以得到查询的结果:
$query = $this->db->get('mytable'); foreach ($query->result() as $row) { echo $row->title; }
$this->db->select()
该方法用于编写查询语句中的 SELECT 子句:
$this->db->select('title, content, date'); $query = $this->db->get('mytable'); // Executes: SELECT title, content, date FROM mytable
注解
如果你要查询表的所有列,可以不用写这个函数,CodeIgniter 会自动查询所有列(SELECT *)。
$this->db->select() 方法的第二个参数可选,如果设置为 FALSE,CodeIgniter 将不保护你的 表名和字段名,这在当你编写复合查询语句时很有用,不会破坏你编写的语句。
$this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE); $query = $this->db->get('mytable');
链式方法
通过将多个方法连接在一起,链式方法可以大大的简化你的语法。感受一下这个例子:
$query = $this->db->select('title') ->where('id', $id) ->limit(10, 20) ->get('mytable');
$this->db->delete()
该方法生成 DELETE 语句并执行。
$this->db->delete('mytable', array('id' => $id)); // Produces: // DELETE FROM mytable // WHERE id = $id
第一个参数为表名,第二个参数为 WHERE 条件。你也可以不用第二个参数, 使用 where() 或者 or_where() 函数来替代它:
$this->db->where('id', $id); $this->db->delete('mytable'); // Produces: // DELETE FROM mytable // WHERE id = $id
如果你想要从多个表中删除数据,你也可以将由多个表名构成的数组传给 delete() 方法。
$tables = array('table1', 'table2', 'table3'); $this->db->where('id', '5'); $this->db->delete($tables);
$this->db->delete()
该方法生成 DELETE 语句并执行。
$this->db->delete('mytable', array('id' => $id)); // Produces: // DELETE FROM mytable // WHERE id = $id
第一个参数为表名,第二个参数为 WHERE 条件。你也可以不用第二个参数, 使用 where() 或者 or_where() 函数来替代它:
$this->db->where('id', $id); $this->db->delete('mytable'); // Produces: // DELETE FROM mytable // WHERE id = $id
如果你想要从多个表中删除数据,你也可以将由多个表名构成的数组传给 delete() 方法。
$tables = array('table1', 'table2', 'table3'); $this->db->where('id', '5'); $this->db->delete($tables);
$this->db->insert()
该方法根据你提供的数据生成一条 INSERT 语句并执行,它的参数是一个**数组** 或一个**对象**,下面是使用数组的例子:
$data = array('title' => 'My title', 'name' => 'My Name', 'date' => 'My date' ); $this->db->insert('mytable', $data); // Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date')
第一个参数为要插入的表名,第二个参数为要插入的数据,是个关联数组。
下面是使用对象的例子:
/* class Myclass { public $title = 'My Title'; public $content = 'My Content'; public $date = 'My Date'; } */ $object = new Myclass; $this->db->insert('mytable', $object);
转载于:https://www.cnblogs.com/songyanan/p/8401021.html
ci框架 查询构造器类相关推荐
- php 查询构造器,Laravel框架查询构造器常见用法总结
本文实例讲述了Laravel框架查询构造器常见用法.分享给大家供大家参考,具体如下: 查询构造器也是我们使用laravel框架的一项必备技能,上一篇文章我们讲到了如何使用原生增删改查,这一篇我们就来讲 ...
- php ci 框架 扩展缓存类,CodeIgniter扩展核心类实例详解
本文实例讲述了CodeIgniter扩展核心类的方法.分享给大家供大家参考,具体如下: CI中对核心类.辅助类和函数的扩展是相当方便的,配置文件中指定了subclass_prefix扩展前缀,默认为M ...
- php ci 框架 扩展缓存类,PHP CodeIgniter框架的工作原理研究
这篇文章主要介绍了PHP CodeIgniter框架的工作原理研究,本文首先分析了它的工作流程,然后总结了它的工作原理,需要的朋友可以参考下 CodeIgniter(以下简称CI,官网以及中国站)是一 ...
- php ci框架查询数据库占用大量的cpu,CodeIgniter 性能优化
背景:部署一套PHP微服务接口,需要兼顾性能,开发效率,扩展性.权衡后选择了CodeIgniter:同时优化框架的默认启动项,在qps1000+的压力下整个启动时间优化到5ms左右. 一.选型 背景: ...
- ci框架的session类,怎么使用ci的session类
2019独角兽企业重金招聘Python工程师标准>>> 初始化 Session Sessions会在每个页面载入后开始运行,所以session类必须首先被初始初始化.您可以在控制器中 ...
- PHP CI框架目录结构及运行机制
CI目录结构 CI主要组成部分为,application(应用文件夹).system(系统文件夹)和index.php入口文件. 应用文件夹中主要是存放控制器.模型和视图等,系统文件夹中主要是存放组成 ...
- CI 框架邮件发送功能,以163为例
1.163邮箱准备 开通邮箱,并进入邮箱点击设置,选中POP3/SMTP/IMAP,点击开启服务,获得授权码,该授权码即为后续CI框架中Mailer类的密码 2.类准备 1.下载文件class.php ...
- ci框架 mysql_CodeIgniter (CI)框架中的数据库查询汇总
引言: 前两天业务涉及到一个拉取答题排行榜的需求,数据库里数据是这样的: 同一个人可能提交过多次成绩,所以同一个人可能会有多次记录: 同一个人提交的多次成绩中可能有至少两次成绩是一样的. 于是,查询的 ...
- CI框架浅析(全篇)
业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很轻便的框架,整个下载包也就2M ...
最新文章
- redhat安装pure-ftpd+mysql时出现libmysqlclient错误的解决办法
- Mybatis核心配置文件xml详解
- 小程序识别车牌php,微信小程序——车牌键盘输入js+css
- linux 一运行build卡,linux_system_build
- 机器人庄园作文_2018年6月四级作文热点话题预测:高端的机器人
- 解决“不是有效的win32应用程序”
- BZOJ1189 [HNOI2007]紧急疏散evacuate
- 诗意插画:心理健康问题上的从A到Z
- C补习--------->第六天,二级指针、指针和数组的关系、选择排序
- git上传文件到gitee
- Java面试题-个人笔记
- 云服务器安装kafka及python连接测试
- 2021-06-18杭电ACM-LCY算法进阶培训班-专题训练16
- Linux应用编程概念
- vue实现搜索功能的代码/实现搜索的程序
- 《C Primer Plus》第5章复习题与编程练习
- SEOER应当避免赌徒式的外链操作手法
- 【ArcGIS Engine开发入门】1.简单显示地图LicenseContro,ToolbarControl,TOCControl,MapControl
- 计算机简单卷,设置简单卷的大小
- 终于把Python弄明白了!
热门文章
- 如果你正处于迷茫期,那就来做这份工作吧!
- 新手学习 react 迷惑的点(完整版)
- C语言深度解剖:关键字
- python flask api 统计_python之restful api(flask)获取数据
- php省城联动_使用php ajax实现一个省市区的三级联动
- JAVA蓝桥杯:字母图形
- HDU-2594-Simpsons’ Hidden Talents (kmp)
- C++:如何更改visual studio 2017的主题颜色?
- spring之基本介绍以及老版本框架的下载地址
- 一道面试题引发的“血案”