最简单示例

$query = $this->db->query("YOUR QUERY");

foreach ($query->result() as $row)
{
echo $row->title;
echo $row->name;
echo $row->body;
} foreach ($query->result_array() as $row)
{
echo $row['title'];
echo $row['name'];
echo $row['body'];
}

CURD

$sql = 'select * from tab_city where fatherID=0';  $list = $this->db->query($sql); //原生sql

$query = $this->db->get('mytable'); //select * from mytable
$query = $this->db->get('mytable', 10, 20);//limit10,20
$query = $this->db->get_where('mytable', array('id' => $id), $limit, $offset); //where id=$id limit $limit,$offset $this->db->select('title, content, date'); //SELECT title, content, date
$this->db->from('mytable');//from mytable
$this->db->join('comments', 'comments.id = blogs.id');//JOIN
$this->db->join('comments', 'comments.id = blogs.id', 'left');// LEFT JOIN
$this->db->where('name', $name); //WHERE name = 'Joe'
$this->db->where('name !=', $name);//WHERE name != 'Joe'
$this->db->where('id <', $id);//AND id < 45
$array = array('name' => $name, 'title' => $title, 'status' => $status); $this->db->where($array); //WHERE name = 'Joe' AND title = 'boss' AND status = 'active'
$where = "name='Joe' AND status='boss' OR status='active'"; $this->db->where($where);//WHERE name='Joe' AND status='boss' OR status='active'
$this->db->or_where('id >', $id); //WHERE name='Joe' or id>10
$names = array('Frank', 'Todd', 'James');$this->db->where_in('username', $names); //WHERE username IN ('Frank', 'Todd', 'James')
$names = array('Frank', 'Todd', 'James');$this->db->or_where_in('username', $names);//OR username IN ('Frank', 'Todd', 'James')
$names = array('Frank', 'Todd', 'James');$this->db->where_not_in('username', $names);//WHERE username NOT IN ('Frank', 'Todd', 'James')
$names = array('Frank', 'Todd', 'James');$this->db->or_where_not_in('username', $names);//OR username NOT IN ('Frank', 'Todd', 'James') $this->db->like('title', 'match');//WHERE `title` LIKE '%match%'
$this->db->like('title', 'match', 'before'); // WHERE `title` LIKE '%match'
$this->db->like('title', 'match', 'after'); // WHERE `title` LIKE 'match%'
$array = array('title' => $match, 'page1' => $match, 'page2' => $match);$this->db->like($array);//WHERE `title` LIKE '%match%' AND `page1` LIKE '%match%' AND `page2` LIKE '%match%'
$this->db->or_like('body', $match);//OR `body` LIKE '%match%'
$this->db->not_like('title', 'match'); // WHERE `title` NOT LIKE '%match%'
$this->db->or_not_like('body', 'match'); $this->db->group_by("title");
$this->db->group_by(array("title", "date")); $this->db->having('user_id = 45'); // HAVING user_id = 45
$this->db->having('user_id', 45); //HAVING user_id = 45
$this->db->having(array('title =' => 'My Title', 'id <' => $id));
$this->db->or_having(); $this->db->order_by('title', 'DESC');
$this->db->order_by('title DESC, name ASC');
$this->db->order_by(42, 'RANDOM');//随机排序 $this->db->limit(10);
$this->db->limit(10, 20); $this->db->count_all_results('my_table');//返回结果的数量 前面可以带$this->db->where() 等等
$this->db->count_all('my_table');//获得当前表的总行数 $this->db->group_start();其实就是 and a=1 and (`b` = 'b' AND `c` = 'c' )) 括号里面的
$this->db->group_end();//建议去看手册 $data = array('title' => 'My title', 'name' => 'My Name', 'date' => 'My date');$this->db->insert('mytable', $data);
$data = array(
array('title' => 'My title', 'name' => 'My Name', 'date' => 'My date'),
array('title' => 'Another title', 'name' => 'Another Name', 'date' => 'Another date')
);
$this->db->insert_batch('mytable', $data);//插入多条 $data = array( 'title' => 'My title', 'name' => 'My Name', 'date' => 'My date');
$this->db->replace('table', $data);//DELETE + INSERT REPLACE INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date')
//我们假设 title 字段是我们的主键,那么如果我们数据库里有一行 的 title 列的值为 'My title',这一行将会被删除并被我们的新数据所取代
$this->db->set('name', $name); $this->db->insert('mytable'); //插入
$this->db->set('name', $name); $this->db->update('mytable'); //更新 $data = array('title' => $title,'name' => $name,'date' => $date); //既可以是数组也可以是对象
$this->db->where('id', $id);
$this->db->update('mytable', $data); $this->db->delete('mytable', array('id' => $id));
$this->db->where('id', $id);$this->db->delete('mytable');
$query = $this->db->select('title')->where('id', $id)->limit(10, 20)->get('mytable'); //可以是这种链式写法
查询结果
$query = $this->db->query("YOUR QUERY");

foreach ($query->result() as $row)
{
echo $row->title;
echo $row->name;
echo $row->body;
} //结果转换对象 foreach ($query->result_array() as $row)
{
echo $row['title'];
echo $row['name'];
echo $row['body'];
}//结果转换成数组 $row = $query->row();//获取第一行数据
$row = $query->row(5); // 获得指定行数据
$row = $query->row_array(); //获得第一行数据的,一维数组
$row = $query->row_array(5);//特定行的一维数组 $row = $query->first_row();$row = $query->last_row();$row = $query->next_row();$row = $query->previous_row();//第一个,最后一个,前一个,后一个 。结果obj
$row = $query->first_row('array'); //结果array /*这个方法和 row() 方法一样返回单独一行结果,但是它不会预读取所有的结果数据到内存中。 如果你的查询结果不止一行,它将返回当前一行,并通过内部实现的指针来移动到下一行。*/
$query = $this->db->query("YOUR QUERY");
while ($row = $query->unbuffered_row())
{
echo $row->title;
echo $row->name;
echo $row->body;
}
$query->unbuffered_row(); // object
$query->unbuffered_row('object'); // object
$query->unbuffered_row('array'); // associative array //自定义结果对象,参考手册 $query = $this->db->query('SELECT * FROM my_table');echo $query->num_rows(); //返回查询结果总行数
echo $query->num_fields();//该方法返回查询结果的字段数(列数)
$query->free_result();//主动释放内存
查询辅助函数
$this->db->insert_id();// INSERT 时,返回新插入行的ID
$this->db->affected_rows();//INSERT、UPDATE 时,返回受影响的行数
$this->db->last_query();//该方法返回上一次执行的查询语句
echo $this->db->count_all('my_table');//获取数据表的总行数
事务
$this->db->trans_start();
//sql_1
//sql_2
$this->db->trans_complete(); $this->db->trans_start();
//sql_1
//sql_2
if ($this->db->trans_status() === FALSE)
{
$this->db->trans_rollback();
}
else
{
$this->db->trans_commit();
}
												

CI 数据库操作总结的更多相关文章

  1. CI数据库操作_查询构造器类

    =================数据库操作======================1.数据库配置: config/database.php 用户名 密码 数据库 2 加载数据库类:$this-& ...

  2. CI中的数据库操作以及AR连贯操作

    要使用CI中的数据库操作,首先我们应该在CI的 application/config/databass.php 文件中配置数据库信息,通常就是配置主机名,用户名,密码,数据库名,表前缀(dbprefi ...

  3. 雷林鹏分享:CodeIgniter 数据库操作

    在平时项目开发过程中,除了处理那些繁琐的逻辑过程外,还有一个重要的任务就是对数据库的操作处理.这里总结下自己平时使用CI过程中使用的如何对数据库进行操作处理. 在CI框架中,我们一般会把对数据库的操作 ...

  4. MySQL数据库操作语句(cmd环境运行)

    一.开启MySQL服务器 1,  通过windows提供的服务管理器来完成 windows键+R 输入: services.msc 2.在本地服务中打开其服务 3.在DOC命令行下 net stop ...

  5. 如何在高并发环境下设计出无锁的数据库操作(Java版本)

    一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...

  6. 【知识必备】ezSQL,最好用的数据库操作类,让php操作sql更简单~

    最近用php做了点小东东,用上了ezSQL,感觉真的很ez,所以拿来跟大家分享一下~ ezSQL是一个非常好用的PHP数据库操作类.著名的开源博客WordPress的数据库操作就使用了ezSQL的My ...

  7. MySQL 系列(二) 你不知道的数据库操作

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 本章内容: 查看\创建\使用\删除 数据库 用户管理及授权实战 局域网 ...

  8. ABP创建数据库操作步骤

    1 ABP创建数据库操作步骤 1.1 SimpleTaskSystem.Web项目中的Web.config文件修改数据库配置. <add name="Default" pro ...

  9. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

随机推荐

  1. JAVA小程序-----买衣服

    import java.util.Scanner; //引用扫描器 public class TestDemo1 { public static void main(String [] args){ ...

  2. Ubuntu关闭进入screensaver模式

    /********************************************************************************* * Ubuntu关闭进入scree ...

  3. doc转html

    Doc2Html  li标签没闭合 在线Word转HTML  style样式

  4. OpenCV2类批量处理文件夹及文件图像 及批量处理后保存到txt文件

    //采用windows控制台实现计算文件夹中对象总数以及批量读取对象 //#include <afx.h> //和windows.h是一样的作用 #include <opencv2/ ...

  5. Fedora初体验

    ========1. 下载https://getfedora.org/zh_CN/workstation/download/下载如下2个文件:Fedora-Workstation-Live-x86_6 ...

  6. C++学习(二十二)(C语言部分)之 项目扫雷实例

    一.新建项目 二.新建源文件 main.cpp和mining,cpp 三.新建头文件 mining.h 四.图片资源添加 添加完成后会在头文件里面生成一个.h头文件,用来调用资源 打开之后可以看到,对 ...

  7. ionic项目中 软键盘弹出之后的问题:

    Android SDK目前提供的软键盘弹出模式接口只有两种: 一是弹出时自动回冲界面,将所有元素上顶: 一种则是不重绘界面,直接将控件元素遮住:     1. ionic 中弹出键盘遮挡住输入框(覆盖 ...

  8. 【BZOJ4817】【SDOI2017】树点染色

    不算学会lct...... 原题: Bob有一棵n个点的有根树,其中1号点是根节点.Bob在每个点上涂了颜色,并且每个点上的颜色不同.定义一条路 径的权值是:这条路径上的点(包括起点和终点)共有多少种 ...

  9. <------------------字节流--------------------->

    字节流: 输入和输出:1.参照物都是java程序来惨遭 2.Input输入,持久化上的数据---->内存 3.Output输出,内存--->硬盘 字节输出流: OutputStream: ...

  10. scala学习笔记-面向对象编程之Trait

    将trait作为接口使用 1 // Scala中的Triat是一种特殊的概念 2 // 首先我们可以将Trait作为接口来使用,此时的Triat就与Java中的接口非常类似 3 // 在triat中可 ...