CI中的数据库操作
- 转载于: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后应该返回 ''-但是如果我正在update一批记录的话,可能返回更大的一个整数。 如果我正在insert一笔新的记录, 在实际产生它之前,
我们并不知道ID具体的值。如果我需要引用新的记录的ID, 使用下列语句:
- $new_id_number = $this->db->insert_id();
- 删除(等同delete)
- $this->db->where('id', '2');
- $this->db->delete('sites');
CI中的数据库操作的更多相关文章
- CI中的数据库操作以及AR连贯操作
要使用CI中的数据库操作,首先我们应该在CI的 application/config/databass.php 文件中配置数据库信息,通常就是配置主机名,用户名,密码,数据库名,表前缀(dbprefi ...
- ***CI中的数据库操作(insert_id新增后返回记录ID)
在system/application/config 文件夹和里面的config文件里已经配置了参数 $active_group = "default";$db['default' ...
- android中的数据库操作(转)
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 an ...
- android中的数据库操作(SQLite)
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 an ...
- Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库
下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...
- CI中获取读操作的结果集行数+获取写操作的影响行数
本质:读操作,用mysql_num_rows函数,写操作用mysql_affected_rows函数 mysql_num_rows() 返回结果集中行的数目.此命令仅对 SELECT 语句有效.要取得 ...
- phpcms v9 中的数据库操作函数
1.查询 $this->select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='') 返回 ...
- 我的Android六章:Android中SQLite数据库操作
今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...
- android中的数据库操作
如何在android中调用数据库资源 在android中主要有两种方法来实现对数据库的访问,一种是adb shell方式,另一种是通过相关的android 的java类来间接的对数据库来进行操作.其中 ...
随机推荐
- thinkphp修改和删除数据
1.在控制器MainController里面写一个方法,调用Nation表中的数据. public function zhuyemian() { $n = D("Nation"); ...
- Kinect之彩色图像数据
彩色图像很有用,很有用!!说到图像识别,未来肯定是个大方向!在机器人视觉和一些智能识别在应用很广,而获取下来的数据再加上Opencv就能做出很多很好玩很有趣的功能.这个以后等我进一步成长后再回来慢慢记 ...
- mysql myisam简单分表设计
一般来说,当我们的数据库的数据超过了100w记录的时候就应该考虑分表或者分区了,这次我来详细说说分表的一些方法.目前我所知道的方法都是MYISAM的,INNODB如何做分表并且保留事务和外键,我还不是 ...
- Eclipse集成Tomcat:6个常见的”how to”问题
学习一门新技术通常是一个很困难的过程,当你想要同时学习两门有交叉的新技术的时候,这个过程会变得更困难.Tomcat和Eclipse是Java EE开发中最流行的2个必备神器,因此,为了成为一个专业的开 ...
- 使用Cocos2d-x实现微信“天天爱消除”炫耀button特效
引言Cocos2d-x引擎中有很多Action,这样可以方便的让开发者调用相应的Action去完成一些动作,例如:移动,弹跳,淡入淡出等.可在实际的开发过程中,由于游戏的需要,显然地,引擎自带的Act ...
- Java的输入方式总结
写java代码的时候,经常会遇到的情况就是输入输错了怎么办?大部分想的是用一个if判断,但是用if判断的话我们就无法让用户再次输入,因为if语句程序执行后就会直接退出程序.因此要想实现循环就要用whi ...
- AngularJS2.0 教程系列(一)
http://my.oschina.net/u/2275217/blog/482178
- WPF这样的界面应该如何编写呢?
如上图: 外围是一个Border,内部填充一个Grid,Grid分成两行,第一行有一个按钮可以进行操作(主要是操作ListBox的数据源:增加和删除对象),第二行填充一个ListBox,绑定数据源并根 ...
- 取代 Windows Search
windows自带的搜索工具太难用了,总是在你急需的时候提示还没有建立索引,眼皮底下的文件都找不到. 1. everything 适合快速搜索文件名 优点是速度快,非常快,几乎是瞬间就建立好了索引. ...
- spring 静态注入
1.静态注入 在setter 方法修改为非 static , 然后在上面注入即可 @Component public class WeixinConfig { // token public stat ...