$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框架 查询构造器类相关推荐

  1. php 查询构造器,Laravel框架查询构造器常见用法总结

    本文实例讲述了Laravel框架查询构造器常见用法.分享给大家供大家参考,具体如下: 查询构造器也是我们使用laravel框架的一项必备技能,上一篇文章我们讲到了如何使用原生增删改查,这一篇我们就来讲 ...

  2. php ci 框架 扩展缓存类,CodeIgniter扩展核心类实例详解

    本文实例讲述了CodeIgniter扩展核心类的方法.分享给大家供大家参考,具体如下: CI中对核心类.辅助类和函数的扩展是相当方便的,配置文件中指定了subclass_prefix扩展前缀,默认为M ...

  3. php ci 框架 扩展缓存类,PHP CodeIgniter框架的工作原理研究

    这篇文章主要介绍了PHP CodeIgniter框架的工作原理研究,本文首先分析了它的工作流程,然后总结了它的工作原理,需要的朋友可以参考下 CodeIgniter(以下简称CI,官网以及中国站)是一 ...

  4. php ci框架查询数据库占用大量的cpu,CodeIgniter 性能优化

    背景:部署一套PHP微服务接口,需要兼顾性能,开发效率,扩展性.权衡后选择了CodeIgniter:同时优化框架的默认启动项,在qps1000+的压力下整个启动时间优化到5ms左右. 一.选型 背景: ...

  5. ci框架的session类,怎么使用ci的session类

    2019独角兽企业重金招聘Python工程师标准>>> 初始化 Session Sessions会在每个页面载入后开始运行,所以session类必须首先被初始初始化.您可以在控制器中 ...

  6. PHP CI框架目录结构及运行机制

    CI目录结构 CI主要组成部分为,application(应用文件夹).system(系统文件夹)和index.php入口文件. 应用文件夹中主要是存放控制器.模型和视图等,系统文件夹中主要是存放组成 ...

  7. CI 框架邮件发送功能,以163为例

    1.163邮箱准备 开通邮箱,并进入邮箱点击设置,选中POP3/SMTP/IMAP,点击开启服务,获得授权码,该授权码即为后续CI框架中Mailer类的密码 2.类准备 1.下载文件class.php ...

  8. ci框架 mysql_CodeIgniter (CI)框架中的数据库查询汇总

    引言: 前两天业务涉及到一个拉取答题排行榜的需求,数据库里数据是这样的: 同一个人可能提交过多次成绩,所以同一个人可能会有多次记录: 同一个人提交的多次成绩中可能有至少两次成绩是一样的. 于是,查询的 ...

  9. CI框架浅析(全篇)

    业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很轻便的框架,整个下载包也就2M ...

最新文章

  1. redhat安装pure-ftpd+mysql时出现libmysqlclient错误的解决办法
  2. Mybatis核心配置文件xml详解
  3. 小程序识别车牌php,微信小程序——车牌键盘输入js+css
  4. linux 一运行build卡,linux_system_build
  5. 机器人庄园作文_2018年6月四级作文热点话题预测:高端的机器人
  6. 解决“不是有效的win32应用程序”
  7. BZOJ1189 [HNOI2007]紧急疏散evacuate
  8. 诗意插画:心理健康问题上的从A到Z
  9. C补习--------->第六天,二级指针、指针和数组的关系、选择排序
  10. git上传文件到gitee
  11. Java面试题-个人笔记
  12. 云服务器安装kafka及python连接测试
  13. 2021-06-18杭电ACM-LCY算法进阶培训班-专题训练16
  14. Linux应用编程概念
  15. vue实现搜索功能的代码/实现搜索的程序
  16. 《C Primer Plus》第5章复习题与编程练习
  17. SEOER应当避免赌徒式的外链操作手法
  18. 【ArcGIS Engine开发入门】1.简单显示地图LicenseContro,ToolbarControl,TOCControl,MapControl
  19. 计算机简单卷,设置简单卷的大小
  20. 终于把Python弄明白了!

热门文章

  1. 如果你正处于迷茫期,那就来做这份工作吧!
  2. 新手学习 react 迷惑的点(完整版)
  3. C语言深度解剖:关键字
  4. python flask api 统计_python之restful api(flask)获取数据
  5. php省城联动_使用php ajax实现一个省市区的三级联动
  6. JAVA蓝桥杯:字母图形
  7. HDU-2594-Simpsons’ Hidden Talents (kmp)
  8. C++:如何更改visual studio 2017的主题颜色?
  9. spring之基本介绍以及老版本框架的下载地址
  10. 一道面试题引发的“血案”