1. 转载于:http://blog.sina.com.cn/s/blog_76e7bdba01016p2p.html
  2.  
  3. CI中第一次连接数据库,在控制器或模型的构造函数里输入以下语句
  1. $this->load->database();
  1.  
  1. 就不需要重复连接, 在那个控制器或模型就可以做任意多次的查询。 查询操作(等同select) 方法一:
  1. $query = $this->db->get('sites'); //sites为表名
  1.  
  1. 这是一个“select *”查询,目标是site表。换句话说,它取回所有的行 也可用下面这种方式写:
  1. $this->db->from('sites');
  2. $query = $this->db->get();
  1.  
  1. 如果想要得到特定的列,而不是全部列,这样做:
  1. $this->db->select('url','name','clientid');//'url','name','clientid'为列名
  2. $query = $this->db->get('sites');
  1.  
  1. 如果排序:
  1. $this->db->select('url','name','clientid');//'url','name','clientid'为列名
  2. $this->db->orderby("name", "desc");
  3. $query = $this->db->get('sites');
  1.  

  

  1. 如果想要限制返回的行数,比如想要最初五个结果
  1. $this->db->select('url','name','clientid');//'url','name','clientid'为列名
  2. $this->db->orderby("name", "desc");
  3. $this->db->limit(5);
  4. $query = $this->db->get('sites');
  1.  
  1. where语句 ==的情况
  1. $this->db->where('clientid', '1'); //clientid属性 "1"为属性值

  

  1. !=的情况
  1. $this->db->where('url !=', 'www.mysite.com');
  2. $this->db->where('id >', '3');
  1.  

  

  1. where后几个条件的可以写几个where
  1. $this->db->where('url !=','www.mysite.com');
  2. $this->db->where('id >', '3');
  1.  
  1. WHEREOR的情况
  1. $this->db->where('url !=','www.mysite.com' );
  2. $this->db->orwhere('url !=','www.anothersite.com' );
  1.  
  1. 连接表
  1. $this->db->from('sites');
  2. $this->db->join('people', 'sites.peopleid = people.id');
  1.  
  1. 写个完整的查询
  1. $this->db->select('url','name','clientid','people.surname AS client');
  2. $this->db->where('clientid', '3');
  3. $this->db->limit(5);
  4. $this->db->from('sites');
  5. $this->db->join('people', 'sites.clientid = people.id');
  6. $this->db->orderby("name", "desc");
  7. $query = $this->db->get();
  1.  

  

  1. 方法二:
  1. $this->db->query("SELECT id, name, url FROM sites WHERE 'type' = 'dynamic'");
  2. 可以像下面的语句一样写查询放条件
  3. $condition = "client ='3' AND (type ='dynamic' OR type='static')";
  4. $this->db->where($condition);
  1.  

  

  1. 注意:双引号是定义变量的.不要混淆单引号和双引号. 显示查询结果 在查询语句后加上下面这句话
  1. $query = $this->db->get();
  1.  
  1. 如果有多个结果,他们被保存在$row对象中,可以用一个 foreach 循环:
  1. foreach ($query->result() as $row)
  2. {
  3. print $row->url;
  4. print $row->name;
  5. print $row->client;
  6. }
  1.  
  1. 如果我们只想要一个结果,它可以作为一个对象被返回, 或在这里当做一个$row数组
  1. if ($query->num_rows() > 0)
  2. {
  3. $row = $query->row_array();
  4.  
  5. print $row['url'];
  6. print $row['name'];
  7. print $row['client'];
  8. }
  1.  
  1. 增加数据(等同insert) 方法一:先建个数组,把要insert的值放在数组里.如下:其中url/name/clientid/type均为数据表属性值
  1. $data = array(
  2. 'url' => 'www.mynewclient.com',
  3. 'name' => 'BigCo Inc',
  4. 'clientid' => '33',
  5. 'type' => 'dynamic'
  6. );
  7. 然后使用$this->db->insert('sites', $data); 把数据增加到sites表中.
  1.  
  1. 方法二:使用$this->db->set() 设置每一个值
  1. $this->db->set('url', 'www.mynewclinet.com');
  2. $this->db->set('name', 'BigCo Inc');
  3. $this->db->set('clientid', '33');
  4. $this->db->set('type', 'dynamic');
  5. $this->db->insert('sites');
  1.  
  1. 更新(等同update) 先定位要更新的记录,再update
  1. $this->db->where('id', '1');
  2. $this->db->update('sites', $data);
  3. $this->db->set()方式也可以,和新增数据应该是一样的.
  1.  
  1. CI 提供几个函数检查数据库是否成功执行了相关操作。 最有用的:
  1. $this->db->affected_rows();
  1.  
  1. 在执行insertupdate后应该返回 ''-但是如果我正在update一批记录的话,可能返回更大的一个整数。 如果我正在insert一笔新的记录, 在实际产生它之前,
    我们并不知道ID具体的值。如果我需要引用新的记录的ID, 使用下列语句:
  1. $new_id_number = $this->db->insert_id();
  1.  
  1. 删除(等同delete)
  1. $this->db->where('id', '2');
  2. $this->db->delete('sites');

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

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

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

  2. ***CI中的数据库操作(insert_id新增后返回记录ID)

    在system/application/config 文件夹和里面的config文件里已经配置了参数 $active_group = "default";$db['default' ...

  3. android中的数据库操作(转)

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

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

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

  5. Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库

    下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...

  6. CI中获取读操作的结果集行数+获取写操作的影响行数

    本质:读操作,用mysql_num_rows函数,写操作用mysql_affected_rows函数 mysql_num_rows() 返回结果集中行的数目.此命令仅对 SELECT 语句有效.要取得 ...

  7. phpcms v9 中的数据库操作函数

    1.查询 $this->select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='')   返回 ...

  8. 我的Android六章:Android中SQLite数据库操作

    今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...

  9. android中的数据库操作

    如何在android中调用数据库资源 在android中主要有两种方法来实现对数据库的访问,一种是adb shell方式,另一种是通过相关的android 的java类来间接的对数据库来进行操作.其中 ...

随机推荐

  1. thinkphp修改和删除数据

    1.在控制器MainController里面写一个方法,调用Nation表中的数据. public function zhuyemian() { $n = D("Nation"); ...

  2. Kinect之彩色图像数据

    彩色图像很有用,很有用!!说到图像识别,未来肯定是个大方向!在机器人视觉和一些智能识别在应用很广,而获取下来的数据再加上Opencv就能做出很多很好玩很有趣的功能.这个以后等我进一步成长后再回来慢慢记 ...

  3. mysql myisam简单分表设计

    一般来说,当我们的数据库的数据超过了100w记录的时候就应该考虑分表或者分区了,这次我来详细说说分表的一些方法.目前我所知道的方法都是MYISAM的,INNODB如何做分表并且保留事务和外键,我还不是 ...

  4. Eclipse集成Tomcat:6个常见的”how to”问题

    学习一门新技术通常是一个很困难的过程,当你想要同时学习两门有交叉的新技术的时候,这个过程会变得更困难.Tomcat和Eclipse是Java EE开发中最流行的2个必备神器,因此,为了成为一个专业的开 ...

  5. 使用Cocos2d-x实现微信“天天爱消除”炫耀button特效

    引言Cocos2d-x引擎中有很多Action,这样可以方便的让开发者调用相应的Action去完成一些动作,例如:移动,弹跳,淡入淡出等.可在实际的开发过程中,由于游戏的需要,显然地,引擎自带的Act ...

  6. Java的输入方式总结

    写java代码的时候,经常会遇到的情况就是输入输错了怎么办?大部分想的是用一个if判断,但是用if判断的话我们就无法让用户再次输入,因为if语句程序执行后就会直接退出程序.因此要想实现循环就要用whi ...

  7. AngularJS2.0 教程系列(一)

    http://my.oschina.net/u/2275217/blog/482178

  8. WPF这样的界面应该如何编写呢?

    如上图: 外围是一个Border,内部填充一个Grid,Grid分成两行,第一行有一个按钮可以进行操作(主要是操作ListBox的数据源:增加和删除对象),第二行填充一个ListBox,绑定数据源并根 ...

  9. 取代 Windows Search

    windows自带的搜索工具太难用了,总是在你急需的时候提示还没有建立索引,眼皮底下的文件都找不到. 1. everything 适合快速搜索文件名 优点是速度快,非常快,几乎是瞬间就建立好了索引. ...

  10. spring 静态注入

    1.静态注入 在setter 方法修改为非 static , 然后在上面注入即可 @Component public class WeixinConfig { // token public stat ...