zoukankan      html  css  js  c++  java
  • 拆分Codeigniter 数据库,独立提取

    起因:

        codeigniter的activeRecord链式操作非常的方便,目前手头的项目用的不是CI,但是又想使用CI的数据库操作。
     
    1. 新建文件夹 activeDB,内部目录如下
    最终
     
     
     
     
    直接拷贝 CI /system/database 到 activeDB下面
     
    config 文件夹下面放 database.php 数据库配置文件
     1 <?php
     2 include(BASEPATH.'core/Common.php');
     3 include(BASEPATH.'database/DB.php');
     4 
     5 class Activedb
     6 {
     7     var $db_config = array(
     8         'dsn'   => '',
     9         'hostname' => 'localhost',
    10         'username' => 'root',
    11         'password' => '',
    12         'database' => '',
    13         'dbdriver' => 'mysqli',
    14         'dbprefix' => '',
    15         'pconnect' => FALSE,
    16         'db_debug' => TRUE,
    17         'cache_on' => FALSE,
    18         'cachedir' => '',
    19         'char_set' => 'utf8',
    20         'dbcollat' => 'utf8_general_ci',
    21         'swap_pre' => '',
    22         'encrypt' => FALSE,
    23         'compress' => FALSE,
    24         'stricton' => FALSE,
    25         'failover' => array(),
    26         'save_queries' => TRUE
    27     );
    28     public function db_link(){
    29         $db = & DB($this->db_config);
    30         return $db;
    31     }
    32 }
    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的博客园博客
     
     
     
    转载请注明出处:http://www.cnblogs.com/martin-tan/
  • 相关阅读:
    音视频入门-15-手动生成一张JPEG图片
    音视频入门-14-JPEG文件格式详解
    音视频入门-13-使用开源库生成PNG图片
    微信小程序笔记
    JS找到嵌套在iframe内联框架中的table表头元素
    京东 PC 首页 2019 改版前端操作总结
    web前端开发中各种图片引入方式及其优缺点
    10个面向前端开发人员的安全提示
    HTML/CSS switch开关 (包括JS控制checked选择)
    Echarts常用属性含义
  • 原文地址:https://www.cnblogs.com/martin-tan/p/4800892.html
Copyright © 2011-2022 走看看