• 【2018夏季达沃斯】未来就业报告发布:机器将比人更“能干” 哪些职位更“吃香”? 2018-09-19
  • 西安市民:本想买点香菜吃火锅?比较后还是买了些肉 2018-09-19
  • 安吉发布乡村治理标准规范 2018-09-19
  • 华北能源监管局开展电网运行风险管控专项督查 2018-09-18
  • 马来西亚新山依斯干达特区吸资2531亿马币 ——凤凰网房产马来西亚 2018-09-18
  • 繁星戏剧挑战浸没式独角戏 2018-09-18
  • 领导干部自然资源资产离任审计制度试点 让福建省光泽县绿意盎然(图)-地方新闻-时政频道-中工网 2018-09-08
  • 人民日报评留美生数落父母:为亲情拓对话空间 2018-09-07
  • 网友给四川省委书记、省长留言获回复 共计25条 2018-09-07
  • 娱乐城新优惠 2018-09-06
  • 无人售货架现身出租车内 乘客扫码付款随时取走零食 2018-09-06
  • 江西公布拖欠劳动报酬典型案例 最高拖欠近200万元 2018-09-06
  • 做学习宣传贯彻人民领袖思想的排头兵 2018-09-06
  • 华夏幸福荣获2018中国品牌先锋大奖之杰出企业奖 2018-09-05
  • 10大路口因礼让斑马线致堵 济南交警推新规约束行人 ——凤凰网房产济南 2018-09-05
  • 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规范。