• 冬奥观察:奥林匹克在“云”间 2018-02-20
  •  “不打烊”不等于“全配送” 快递如何保障春节网购 2018-02-20
  • 开创生态文明新时代 绘出美丽中国新图景 2018-02-20
  • 人民网驻阿尔及利亚记者报道集 2018-02-19
  • 党务问答:党组与党委有何区别? 2018-02-19
  • MINI车联网服务3月起升级至4G网络 增加新功能 2018-02-18
  • 以色列警方:已有足够的证据可以用于起诉以总理 2018-02-18
  • 冬奥会短节目第四 金博洋:伤病令我更强大 2018-02-18
  • 天津市北辰区委书记冯卫华:强化政治担当 把主体责任落实落细 2018-02-17
  • 正月初一客流继续回落 全国铁路预计发送旅客389万人次 2018-02-17
  • 送别余光中:诗人虽远行,乡愁永流传 2018-02-17
  • 集团原董事长违纪被查 人员伤亡事故频发 湖北宜化:去年亏损额超过公司市值 2018-02-17
  • 图片故事:“六个人”的火车站 2018-02-16
  • 【马来西亚房产】雅诗阁之星十年包租可续租! ——凤凰网房产马来西亚 2018-02-16
  • 大量顺差在中国,多数利润归美国 2018-02-16
  • CodeIgniter 数据库操作

    栏目: CI 发布于: 2014-02-24 17:06:21

    在平时项目开发过程中,除了处理那些繁琐的逻辑过程外,还有一个重要的任务就是对数据库的操作处理。这里总结下自己平时使用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 数据库操作
    IT技术书籍推荐:
    JavaScript高级程序设计(第3版)
    JavaScript高级程序设计(第3版)
    泽卡斯 (Zakas. Nicholas C.) (作者), 李松峰 (译者), 曹力 (译者)
    《JavaScript高级程序设计(第3版)》是JavaScript超级畅销书的最新版。ECMAScript 5和HTML5在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为JavaScript增添了很多适应未来发展的新特性?!禞avaScript高级程序设计(第3版)》这一版除增加5章全新内容外,其他章节也有较大幅度的增补和修订,新内容篇幅约占三分之一。全书从JavaScript语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax与Comet服务器端通信,HTML5表单、媒体、Canvas(包括WebGL)及Web Workers、地理定位、跨文档传递消息、客户端存储(包括IndexedDB)等新API,还介绍了离线应用和与维护、性能、部署相关的最佳开发实践?!禞avaScript高级程序设计(第3版)》附录展望了未来的API和ECMAScript Harmony规范。