1. 程式人生 > >CI框架多個mysql資料庫進行切換的思路

CI框架多個mysql資料庫進行切換的思路

這個問題是我最近剛剛學會的一個思路,可以來回自由切換到你想要的資料庫,
首先:你要在database配置檔案中配置好你預設的資料庫,主要是用來你一進去就要操作的資料庫,如圖:
這裡寫圖片描述

然後在記得這個資料庫中新建一個表,就是用來後面切記資料庫的表,這個表中所包含的欄位就是配置資料庫時所需要的欄位,如下圖:
這裡寫圖片描述
然後就是,程式碼的編寫,在MY_Controller.php裡面編寫,在公共部分類中去執行,

function switch_client_db($dbsettingid){
    //引數$dbsettingid是一個條件,想用到那個資料庫根據前面設定表結構的時候區分條件來給打這裡取出相應的資料庫的資訊,然後利用變數來配置想要的資料庫,這段程式碼就是這個意思
$dbsetting_info = $this->client_model->get_dbsetting_info(array('user_id'=>$dbsettingid,'type'=>'master')); $dbslave_info = $this->client_model->get_dbsetting_info(array('user_id'=>$dbsettingid,'type'=>'master')); $dbsetting_info['hostname'] = '這裡是你的資料庫地址'
; $dbsetting_info['username'] = '名字'; $dbsetting_info['password'] = '密碼'; if(!empty($dbsetting_info)){ $this->db_client_slave = $this->db_client = $this->load->database($dbsetting_info, true); } $this->db_slave = $this->load->database('slave'
, true); }

還沒有算完,接下來就是剛才說到要查到索取的資料庫資訊,這裡還要配置你的model裡面查詢的資料庫資訊設定

/**
     * 根據id返回資料庫資訊
     * @param unknown_type $dbsetting_id
     */
    function get_dbsetting_info($dbsetting_id){
        if( empty($dbsetting_id) ) return false;
        if( is_array($dbsetting_id) )
            $this->db->where($dbsetting_id);
        else
            $this->db->where("user_id", $dbsetting_id);
        $query = $this->db->get($this->dbsetting_table);

        $dbsetting_info = $query->row_array();
//      pr($this->db->last_query());
        return $dbsetting_info;
    }

上面這個方法就是根據你傳進來的條件,來查詢所對應的資料庫資訊,在這裡基本上就是介紹完了。

相關推薦

CI框架mysql資料庫進行切換思路

這個問題是我最近剛剛學會的一個思路,可以來回自由切換到你想要的資料庫, 首先:你要在database配置檔案中配置好你預設的資料庫,主要是用來你一進去就要操作的資料庫,如圖: 然後在記得這個資料庫中新建一個表,就是用來後面切記資料庫的表,這個表中所包含的

如何在 Laravel 中連線 MySQL 資料庫

  第一步、定義資料庫連結 config/database.php <?php return [ 'default' => 'mysql', 'connections' => [ # 主要資料庫連線 'mysql' => [ 'driver' =&g

linux系統下安裝MySql資料庫並做主從配置

轉載自:http://blog.csdn.net/millery22/article/details/50547443 前提: 1、關閉Liunx系統的防火牆,如果忘了,你下面的測試連線必定會失敗,切記,切記,切記。 2、yum安裝lrzsz和cmake yum

PHP同時連線mysql資料庫

例項: <?php $conn1 = mysql_connect("127.0.0.1", "root","root","db1"); mysql_select_db("db1", $conn1); $conn2 = mysql_connect("127.0.0.1"

Linux jdk安裝版本並進行切換

轉自: 其他文章 1. 上傳jdk7 和 jdk8 包 2. 解壓 [[email protected] webapps]# tar -zxvf /package/jdk-7u80-linux-x64.tar.gz

mysql group by 對字段進行分組

進行 head https 所有 sele 依據 字段 聚合函數 計數 轉載自:https://blog.csdn.net/xx_star1204/article/details/72884983 在平時的開發任務中我們經常會用到MYSQL的GROUP BY分組, 用來

MYSQL GROUP BY 對欄位進行分組

在平時的開發任務中我們經常會用到MYSQL的GROUP BY分組, 用來獲取資料表中以分組欄位為依據的統計資料。比如有一個學生選課表,表結構如下: Table: Subject_Selection Subject Semester Attendee -------

臺伺服器之間如何讓sqlserver,mysql資料庫進行資料同步?

伺服器儲存視訊,頻寬不夠用,想用多臺伺服器,如何讓所有伺服器之間視訊實時同步,可以用什麼軟體!當企業租用伺服器,但是在資料同步的時候,又有著嚴格的要求,要求資料達到一致,在科技發達的今天,這又該如何做到了?下面天下資料為大家介紹多臺伺服器之間讓資料同步的方法! 1、採用高可用sureHA軟體映象型,一臺

mysql group by 對欄位進行分組

在平時的開發任務中我們經常會用到MYSQL的GROUP BY分組, 用來獲取資料表中以分組欄位為依據的統計資料。比如有一個學生選課表,表結構如下: Table: Subject_Selection Subject Semester Att

Hibernate框架mysql資料庫進行CRUD(增改改刪)

使用hibernate框架對mysql資料庫進行增刪改查 1、建立一個java工程,並且建立一個數據庫hibernate 2、建立一個lib資料夾,拷貝jar包,並且build path(圈起的三個是測試jar包,編輯器有的話可以不考)

Spring AOP實現Mysql資料庫主從切換(一主從)

設定資料庫主從切換的原因:資料庫中經常發生的是“讀多寫少”,這樣讀操作對資料庫壓力比較大,通過採用資料庫叢集方案,  一個數據庫是主庫,負責寫;其他為從庫,負責讀,從而實現讀寫分離增大資料庫的容錯率。  那麼,對資料庫的要求是:  1. 讀庫和寫庫的資料一致;  2. 寫資料

scalikejdbc框架mysql資料庫進行增刪改查,事務建立

1.在scala中想要操作mysql數庫中的資料,可以使用scalikejdbc。 2.匯入依賴。 3.在resource檔案中新增application.conf檔案。然後配置引數。 db.def

MySQL無法同時客戶端進行連線解決方案

問題:Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2) 原因: 1.首先定位了問題,是由於訪問量太大,導致資料庫連線數不夠,問題出現在資料

一臺電腦 如何切換登入mysql

1.電腦上有多個mysql版本,通過windows的dos視窗進行登入,因為登入埠不一樣可以使用命令mysql -P 3307 -u root -p 3307-為登入mysql的埠號然後回車,輸入密碼,如果報下面的錯誤 C:\Users\hu>mysql -P 33

一個MySql例項自動建立Activiti資料庫問題

一次使用SSH和Activiti6開發的專案中,在伺服器啟動的時候就報錯:org.apache.ibatis.exceptions.PersistenceException: ### Error querying database.  Cause: java.sql.SQLS

Linux下安裝啟動Mysql

blank 修改 知識庫 ati fault 了解 skip .aspx 需求 網上找了N多資料,沒有一個可以順利成功的,郁悶,可能是水平有限吧...!本人經過不斷的研究、測試,完整實現Linux下啟動兩臺MySQL,而且對mysql有了更深入的了解...廢話不多說,走著!

solr聯合字段進行檢索(multivalued和copyfield的使用)

-1 strong str lang img ring index 技術 字符 copyField 與multiValued用途 在我們的應用中經常會有這種情形:當用戶輸入某個字符串查找時,需要如果在標題及內容中存在這個字會串時均要把記錄加載出來,通過引入copyField

Selenium2+python自動化71-瀏覽器之間的切換【轉載】

logs ant utf-8 動態 不同的 ova data- 目的 有時 前言 有時候一些業務的功能涉及到多個系統,需要在web系統1打開造一些數據,然後用到某些參數是動態生成的,需要調用web系統2裏面的參數。 舉個簡單例子:在做某些業務的時候,需要手機短信驗證碼,

一臺電腦安裝JDK並自由切換

image home clas 分享 mage classpath com http ~~ 環境變量 path和classpath裏邊用%JAVA_HOME%; 就這樣,只要改變JAVA_HOME的值,就可以自由切換Java版本了呢~~ 一臺電腦安裝多個JDK並自由切換

Windows上安裝MySQL實例(轉)

windows 小寫 install current -o iter 不同的 包安裝 class 在學習和開發過程中有時候會用到多個MySQL數據庫,比如Master-S