您的位置:首页 > 数据库

拆分Codeigniter 数据库,独立提取

2015-09-11 14:42 435 查看
起因:

codeigniter的activeRecord链式操作非常的方便,目前手头的项目用的不是CI,但是又想使用CI的数据库操作。

1. 新建文件夹 activeDB,内部目录如下
最终



直接拷贝 CI /system/database 到 activeDB下面

config 文件夹下面放 database.php 数据库配置文件

<?php
include(BASEPATH.'core/Common.php');
include(BASEPATH.'database/DB.php');

class Activedb
{
var $db_config = array(
'dsn'   => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => '',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
public function db_link(){
$db = & DB($this->db_config);
return $db;
}
}


2. 拷贝 CI /system/core/Common.php 到core 文件夹下
修改 log_message 这个function为 return false;
CI框架在配置里可以打开日志系统,而我们不需要这个,但是要保留这个function。

3. 在项目对应的位置就可以引入CI的 active record 了

比如我们在 activeDB同级目录创建一个 index.php的文件

内容如下

<?php
define('BASEPATH', __DIR__ . '/activeDB/');
define('APPPATH', __DIR__ . '/activeDB/');
require_once BASEPATH . 'config/database.php';
require_once(BASEPATH.'models/Comm_model.php');
class Test{
var $db;
var $Comm_model;
function __construct(){
//链接数据库
  $activedb = new Activedb();
  $this->db = & $activedb->db_link();
//实例化通用模型
$Comm_model = new Comm_model($this->db);
$this->Comm_model = $Comm_model;
}
}


在自定义的function中便可以用跟CI 一模一样的查询方式如:$this->db->get('mytable');

上文代码中的comm_model.php 这行可以删掉,也可以放通用的model在这里。

本文地址:http://www.cnblogs.com/martin-tan/p/4800892.html 来自 Martin.tan的博客园博客
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: