转载于:http://blog.sina.com.cn/s/blog_76e7bdba01016p2p.html

CI中第一次连接数据库,在控制器或模型的构造函数里输入以下语句

$this->load->database();

就不需要重复连接, 在那个控制器或模型就可以做任意多次的查询。 查询操作(等同select) 方法一:

$query = $this->db->get('sites'); //sites为表名

这是一个“select *”查询,目标是site表。换句话说,它取回所有的行 也可用下面这种方式写:

$this->db->from('sites');

$query = $this->db->get();

如果想要得到特定的列,而不是全部列,这样做:

$this->db->select('url','name','clientid');//'url','name','clientid'为列名

$query = $this->db->get('sites');

如果排序:

$this->db->select('url','name','clientid');//'url','name','clientid'为列名

$this->db->orderby("name", "desc");

$query = $this->db->get('sites');

如果想要限制返回的行数,比如想要最初五个结果

$this->db->select('url','name','clientid');//'url','name','clientid'为列名

$this->db->orderby("name", "desc");

$this->db->limit(5);

$query = $this->db->get('sites');

写where语句==的情况

$this->db->where('clientid', '1'); //clientid属性 "1"为属性值

!=的情况

$this->db->where('url !=', 'www.mysite.com');

$this->db->where('id >', '3');

where后几个条件的可以写几个where 如

$this->db->where('url !=','www.mysite.com');

$this->db->where('id >', '3');

WHERE…OR的情况

$this->db->where('url !=','www.mysite.com' );

$this->db->orwhere('url !=','www.anothersite.com' );

连接表

$this->db->from('sites');

$this->db->join('people', 'sites.peopleid = people.id');

写个完整的查询

$this->db->select('url','name','clientid','people.surname AS client');

$this->db->where('clientid', '3');

$this->db->limit(5);

$this->db->from('sites');

$this->db->join('people', 'sites.clientid = people.id');

$this->db->orderby("name", "desc");

$query = $this->db->get();

方法二:

$this->db->query("SELECT id, name, url FROM sites WHERE 'type' = 'dynamic'");

可以像下面的语句一样写查询放条件

$condition = "client ='3' AND (type ='dynamic' OR type='static')";

$this->db->where($condition);

注意:双引号是定义变量的.不要混淆单引号和双引号. 显示查询结果 在查询语句后加上下面这句话

$query = $this->db->get();

如果有多个结果,他们被保存在$row对象中,可以用一个foreach循环:

foreach ($query->result() as $row)

{

print $row->url;

print $row->name;

print $row->client;

}

如果我们只想要一个结果,它可以作为一个对象被返回, 或在这里当做一个$row数组

if ($query->num_rows() > 0)

{

$row = $query->row_array();

print $row['url'];

print $row['name'];

print $row['client'];

}

增加数据(等同insert) 方法一:先建个数组,把要insert的值放在数组里.如下:其中url/name/clientid/type均为数据表属性值

$data = array(

'url' => 'www.mynewclient.com',

'name' => 'BigCo Inc',

'clientid' => '33',

'type' => 'dynamic'

);

然后使用$this->db->insert('sites', $data); 把数据增加到sites表中.

方法二:使用$this->db->set() 设置每一个值

$this->db->set('url', 'www.mynewclinet.com');

$this->db->set('name', 'BigCo Inc');

$this->db->set('clientid', '33');

$this->db->set('type', 'dynamic');

$this->db->insert('sites');

更新(等同update) 先定位要更新的记录,再update

$this->db->where('id', '1');

$this->db->update('sites', $data);

$this->db->set()方式也可以,和新增数据应该是一样的.

CI 提供几个函数检查数据库是否成功执行了相关操作。 最有用的:

$this->db->affected_rows();

在执行insert或update后应该返回'1'-但是如果我正在update一批记录的话,可能返回更大的一个整数。 如果我正在insert一笔新的记录, 在实际产生它之前,

我们并不知道ID具体的值。如果我需要引用新的记录的ID, 使用下列语句:

$new_id_number = $this->db->insert_id();

删除(等同delete)

$this->db->where('id', '2');

$this->db->delete('sites');

ci mysql操作_CI中的数据库操作相关推荐

  1. php中的数据库操作和字符串操作session与cookie操作,php中的数据库操作和字符串操作session与cookie操作...

    PHP面试干货 1.进程和线程 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性.进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一 ...

  2. php封装的数据库操作文件夹,PHP中对数据库操作的封装_php

    现在我们把其封装在dbfz.inc中,其设计如下: $#@60;? class dbInterface{ var $dbID=1; //用于确定当前操作的数据库,当dbID为1代表mysql,当为 2 ...

  3. mysql 数据库操作类_【数据库操作类】10个php操作数据库类下载

    数据库(Database)操作是在开发过程中重要的组成部分,熟练掌握数据库的操作是开发人员必备的武器.PHP中文网为大家提供了各种封装好的php数据库操作类库,供大家下载和学习. 相关mysql视频教 ...

  4. phpwind database.php,phpwind中的数据库操作类

    phpwind中的数据库操作类 更新时间:2007年01月02日 00:00:00   作者: /*来源:phpwind.net*/ Class DB { var $query_num = 0; fu ...

  5. wp-db.php,WordPress中的数据库操作类wp-db.php

    版权:转载 来源:互联网 WordPress中的数据库操作类wp-db.php的原型是ezSQL.官方网站: http://php.justinvincent.com ezSQL支持对如下数据库的操作 ...

  6. 一文详解python中的数据库操作

    python中的数据库操作 一.数据库编程接口 1. 连接对象 二.使用内置的SQLite 1.创建数据库文件 2.操作SQLite 三.MySql数据库的使用 3.1 安装MySql 3.2 设置环 ...

  7. MySQL讲义第2讲——数据库操作

    MySQL讲义第2讲--数据库操作 文章目录 MySQL讲义第2讲--数据库操作 一.创建数据库 1.查看MySQL默认的字符集和校对规则 2.创建数据库时省略字符集和校对规则 3.创建数据库时指定字 ...

  8. android中的数据库操作(SQLite)

    android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   an ...

  9. php定义数据表类,phpwind中的数据库操作类

    phpwind中的数据库操作类 2021-01-22 20:12:15141 /*来源:phpwind.net*/ ClassDB{ var$query_num=0; functionDB($dbho ...

最新文章

  1. 在CentOS 6.9 x86_64上从源码安装xz命令的方法
  2. C算法编程题(四)上三角
  3. SLAM:SLAM相机简介、SLAM五步流程简介(VO+BEO+LCD+M)之详细攻略
  4. 深度探索C++ 对象模型(4)-Default Copy Constructor(4)
  5. pstack 安装linux_详解命令-pstack
  6. SSM+KindEditor实现富文本编辑器图片上传
  7. spark 在启动的时候出现JAVA_HOME not set
  8. C#学习笔记:预处理指令
  9. 《从零开始学ASP.NET CORE MVC》课程介绍
  10. php7 有参数类型,PHP7中的可空返回类型
  11. Freemarker常用技巧
  12. android 画面,Android 界面组成
  13. 找出消费者在使用你的产品的时候,什么时刻觉得“值了”
  14. linux操作系统(云服务器中的使用)
  15. Git-LFS:大文件也有了版本管理
  16. 洛谷—P1330 封锁阳光大学
  17. 京东热 key 探测框架新版发布JD-hotkey,单机 QPS 可达 35 万
  18. 使用 JavaScript 添加时间
  19. Tiled结合Unity实现瓦片地图
  20. ColMap环境配置

热门文章

  1. RGBD SLAM V2 环境搭建
  2. 大数据时代的3V 和3高
  3. 多个独立样本的非参数检验—两两比较--SPSS软件
  4. 从零开始写一个抖音App——Apt代码生成技术、gradle插件开发与protocol协议
  5. win10没有声音的问题
  6. 蓝桥杯单片机CT107D_16_模拟风扇控制系统
  7. 为什么仿宋字体打印出楷体_宋体、仿宋体、楷体字的辨认
  8. 高中学历父亲自学基因编辑,看五六百篇论文,自制药用级化合物救治罕见病儿子!...
  9. c算法题中各种输入和输出方法技巧详解!
  10. 关闭微软内置服务器,强制卸载!Win10自带的流氓应用,解放你的开始菜单