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

  在CI框架中,我们一般会把对数据库的操作放在models中,下面以文章操作类article_model.php为例:

  1、数据库链接

  class Article_model extends CI_Model

  {

  private $admin = null;

  public function __construct()

  {

  $this->admin->load->database('admin', true);

  }

  }

  解释一下,这里使用一个 $admin 属性的目的是为了多数据库操作的情况下使用,如果你的项目中只有一个数据库那么你可以这样

  $this->load->database();

  2、查询操作

  对于查询操作自己不是很喜欢使用CI中那种链式操作方式,还是喜欢写些原生的SQL语句。这里使用的是封装查询:

  $sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";

  $this->admin->query($sql, array(3, 'live', 'Rick'));

  注意:这里使用query时我们不是用

  $this->db->query($sql, array(3, 'live', 'Rick'));

  而是用

  $this->admin->query($sql, array(3, 'live', 'Rick'));

  这就是刚才说的多数据库的区别。

  还有,使用封装查询的第二个好处是所有的值都会被自动转义,形成了较为安全的查询语句。你无需手动地去转义这些数据;控制器将会自动为你进行。

  完整的查询代码:

  /**

  * @param int $id

  * @param string $status

  * @param string $author

  * @return mixed

  */

  public function article($id, $status, $author)

  {

  $sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";

  $query = $this->admin->query($sql, array($id, $status, $author));

  return $query->result_array(); //结果返回数组

  return $query->result(); //结果返回对象

  }

  3、插入操作

  插入操作相对查询来说就比较简单了,这里不过多介绍,直接上代码:

  /**

  * @param array $data 需插入数据,注意数组key与表字段名对应

  * @return bool

  */

  public function add($data)

  {

  return $this->admin->insert('tableName', $data);

  }

  4、更新操作

  /**

  * @param int $id 条件

  * @param array $data 需修改的数据,注意数组key与表字段名对应

  * @return bool

  */

  public function update($id, $data)

  {

  $this->admin->where('id', $id); //更新条件,根据实际情况自行修改

  return $this->admin->update('tableName', $data);

  }

  5、删除操作

  /**

  * @param int $id 删除条件

  * @return bool

  */

  public function delete($id)

  {

  $this->admin->where('id', $id); //删除条件,根据实际情况自行修改

  return $this->admin->delete('tableName');

  }

  上面就是CI中对数据库的基本操作方法,对于其他的,如:查询总数、查询缓存、转义查询、事务等操作,可以参考CI手册。(编辑:雷林鹏 来源:网络 侵删)

雷林鹏分享:CodeIgniter 数据库操作的更多相关文章

  1. 雷林鹏分享:CodeIgniter常用的数据库操作类

    在 CodeIgniter 中,使用数据库是非常频繁的事情.你可以使用框架自带的数据库类,就能便捷地进行数据库操作. 初始化数据库类 依据你的数据库配置载入并初始化数据库类: $this->lo ...

  2. 雷林鹏分享:Ruby 数据库访问 - DBI 教程

    Ruby 数据库访问 - DBI 教程 本章节将向您讲解如何使用 Ruby 访问数据库.Ruby DBI 模块为 Ruby 脚本提供了类似于 Perl DBI 模块的独立于数据库的接口. DBI 即 ...

  3. 雷林鹏分享:JSP 简介

    JSP 简介 什么是Java Server Pages? JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开 ...

  4. 雷林鹏分享:jQuery EasyUI 树形菜单 - 树形菜单拖放控制

    jQuery EasyUI 树形菜单 - 树形菜单拖放控制 当在一个应用中使用树(Tree)插件,拖拽(drag)和放置(drop)功能要求允许用户改变节点位置.启用拖拽(drag)和放置(drop) ...

  5. 雷林鹏分享:XML 用途

    XML 用途 XML 应用于 Web 开发的许多方面,常用于简化数据的存储和共享. XML 把数据从 HTML 分离 如果您需要在 HTML 文档中显示动态数据,那么每当数据改变时将花费大量的时间来编 ...

  6. 雷林鹏分享:XML Parser

    XML Parser 所有现代浏览器都有内建的 XML 解析器. XML 解析器把 XML 文档转换为 XML DOM 对象 - 可通过 JavaScript 操作的对象. 解析 XML 文档 下面的 ...

  7. 雷林鹏分享:XML DOM

    XML DOM DOM(Document Object Model 文档对象模型)定义了访问和操作文档的标准方法. XML DOM XML DOM(XML Document Object Model) ...

  8. 雷林鹏分享:服务器上的 XML

    服务器上的 XML XML 文件是类似 HTML 文件的纯文本文件. XML 能够通过标准的 Web 服务器轻松地存储和生成. 在服务器上存储 XML 文件 XML 文件在 Internet 服务器上 ...

  9. 雷林鹏分享:XML 相关技术

    XML 相关技术 下面是一个 XML 技术的列表. XHTML (可扩展 HTML) 更严格更纯净的基于 XML 的 HTML 版本. XML DOM (XML 文档对象模型) 访问和操作 XML 的 ...

随机推荐

  1. [USACO11DEC]牧草种植Grass Planting

    图很丑.明显的树链剖分,需要的操作只有区间修改和区间查询.不过这里是边权,我们怎么把它转成点权呢?对于E(u,v),我们选其深度大的节点,把边权扔给它.因为这是树,所以每个点只有一个父亲,所以每个边权 ...

  2. centos6 更新gcc glibc2.17

    curl -Lks http://www.hop5.in/yum/el6/hop5.repo > /etc/yum.repos.d/hop5.repo yum install gcc wget ...

  3. MAC 终端走代理服务器

    问题描述: MAC 终端,默认不走代理服务器:即浏览器已经可以FQ,但是终端不行: 解决方案:直接设置终端的代理,本文 用的是 shadowSocksX: 打开终端,直接执行:(执行后,只对当前终端起 ...

  4. redis 有序集合(zset)函数

    redis 有序集合(zset)函数 zAdd 命令/方法/函数 Adds the specified member with a given score to the sorted set stor ...

  5. 使用Redux DevTools浏览器插件调试redux

    与redux的Devtools模块不同,该工具主要依赖浏览器插件完成.模式也比Devtools简单点. step1 下载插件 Chrome地址(360极速模式也可以用): https://chrome ...

  6. Oarcle 之连接查询

            连接查询:连接查询是关系数据库中最主要的查询,主要包括内连接.外连接和交叉连接等.通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的 ...

  7. ubuntu 下安装 navicat 12

    一.去官网下载navicat112_premium_cs_x64 for linux版本二.用tar解压安装包三.navicat解压即可用,直接进入解压后的目录,然后用‘./’运行start_navi ...

  8. 服务器怎么安装mysql数据库

    有些小伙伴们想自己玩玩服务器.可以买了服务以后,发现服务器就是一个大框子,没有数据存储.啥都没有,这时候就需要各种软件操作来逐步安装这些东西, 一.使用的工具:xshell(从官网上下载),目的是得使 ...

  9. SSH 安全加固

    检查密码重用是否受限制 | 身份鉴别 说明:强制用户不重用最近使用的密码,降低密码猜测攻击风险 描述:设置较低的Max AuthTrimes参数将降低SSH服务器被暴力攻击成功的风险. 加固建议:在/ ...

  10. java @Service 引入什么包

    maven中加入 <dependency> <groupId>org.springframework</groupId> <artifactId>spr ...