之前說了thinkphp配置sql_server的方法,現在來說一下,sql_server和mysql的切換問題,也就是所說的多源數據庫.
不知道大家有沒有配置過多數據庫,其實大部分框架都會支持多數據庫的,不說沒用了,下面直接給出我在tp3.2裏面的配置:
config.php
/* 數據庫設置 */
'DB_TYPE' => '', // 數據庫類型
'DB_HOST' => '', // 服務器地址
'DB_NAME' => '', // 數據庫名
'DB_USER' => '', // 用戶名
'DB_PWD' => '', // 密碼
'DB_PORT' => '', // 端口
'DB_PREFIX' => '', // 數據庫表前綴
'DB_PARAMS' => array(), // 數據庫連接參數
'DB_DEBUG' => TRUE, // 數據庫調試模式 開啓後可以記錄SQL日誌
'DB_FIELDS_CACHE' => true, // 啓用字段緩存
'DB_CHARSET' => 'utf8', // 數據庫編碼默認採用utf8
'DB_DEPLOY_TYPE' => 0, // 數據庫部署方式:0 集中式(單一服務器),1 分佈式(主從服務器)
'DB_RW_SEPARATE' => false, // 數據庫讀寫是否分離 主從式有效
'DB_MASTER_NUM' => 1, // 讀寫分離後 主服務器數量
'DB_SLAVE_NO' => '', // 指定從服務器序號
//鏈接sql_server數據庫
'DBCong2'=>array(
/* 數據庫設置 */
'DB_TYPE' => '', // 數據庫類型
'DB_HOST' => '', // 服務器地址
'DB_NAME' => '', // 數據庫名
'DB_USER' => '', // 用戶名
'DB_PWD' => '', // 密碼
'DB_PORT' => '', // 端口
'DB_PREFIX' => '', // 數據庫表前綴
'DB_PARAMS' => array(), // 數據庫連接參數
'DB_DEBUG' => TRUE, // 數據庫調試模式 開啓後可以記錄SQL日誌
'DB_FIELDS_CACHE' => true, // 啓用字段緩存
'DB_CHARSET' => 'utf8', // 數據庫編碼默認採用utf8
'DB_DEPLOY_TYPE' => 0, // 數據庫部署方式:0 集中式(單一服務器),1 分佈式(主從服務器)
'DB_RW_SEPARATE' => false, // 數據庫讀寫是否分離 主從式有效
'DB_MASTER_NUM' => 1, // 讀寫分離後 主服務器數量
'DB_SLAVE_NO' => '' // 指定從服務器序號
)
第一個數據庫連接沒加外層的數組,是因爲我這個配置是在項目已經開發大半了.不可能再回頭重新改一遍,想想這樣應該也可以,所以就沒加,結果不出所料.
項目裏面:(例:testController.class.php)
public function test(){
$data = M('ceshi',' ','DBCong2')->select();
// $data = $Model->where(['id'=>1])
$data2 = M("news")->limit(9)->select();
dump($data);
echo '<br>';
dump($data2);exit;
}
下面是成功的輸出結果: