Yii框架實現(xiàn)多數(shù)據(jù)庫配置和操作的方法
本文實例講述了Yii框架實現(xiàn)多數(shù)據(jù)庫配置和操作的方法。分享給大家供大家參考,具體如下:
Yii的默認配置為一個數(shù)據(jù)庫,不過可以很容易的支持多個數(shù)據(jù)庫的操作,
這為按業(yè)務分割數(shù)據(jù)庫提供了基礎設施。如下所示:
//cms DB connection
'db' => (defined('DB_CONNECTION') ? array(
'connectionString' => DB_CONNECTION,
'username' => DB_USER,
'password' => DB_PWD,
'charset' => 'utf8',
'emulatePrepare' => true,
'enableParamLogging' => true,
'schemaCachingDuration' => 3600, //cache table schema
) : array()),
//member DB connection
'db_member' => (defined('DB_CONNECTION_MEMBER') ? array(
'class'=> 'CDbConnection' ,
'connectionString' => DB_CONNECTION_MEMBER,
'username' => DB_USER_MEMBER,
'password' => DB_PWD_MEMBER,
'charset' => 'utf8',
'emulatePrepare' => true,
'enableParamLogging' => true,
'schemaCachingDuration' => 3600, //cache table schema
) : array()),
然后在模型中重載getDbConnection函數(shù),比如:
class Point extends CActiveRecord {
public function getDbConnection() {
return Yii::app()->db_member;
}
...
}
如果有很多模型會使用db_member, 可以從CActiveRecord派生一個子類:CMemberActiveRecord, 把getDbConnection的重寫放在該AR的子類中。
然后模型都從該CMemberActiveRecord中派生。
多數(shù)據(jù)庫配置遇到的一個典型的錯誤是:
Object configuration must be an array containing a class element
原因是配置中非$db的其他數(shù)據(jù)庫沒有設置class屬性,添加該屬性并設置其值為CDbConnection即可。
參考鏈接:
http://yiihaa.com/models-and-multiple-database-connections
更多關于Yii相關內(nèi)容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結(jié)》、《php優(yōu)秀開發(fā)框架總結(jié)》、《smarty模板入門基礎教程》、《php面向?qū)ο蟪绦蛟O計入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家基于Yii框架的PHP程序設計有所幫助。
- Yii實現(xiàn)多數(shù)據(jù)庫主從讀寫分離的方法
- Yii實現(xiàn)MySQL多數(shù)據(jù)庫和讀寫分離實例分析
- yii2.0數(shù)據(jù)庫遷移教程【多個數(shù)據(jù)庫同時同步數(shù)據(jù)】
- Yii操作數(shù)據(jù)庫的3種方法
- 解析yii數(shù)據(jù)庫的增刪查改
- Yii2.0高級框架數(shù)據(jù)庫增刪改查的一些操作
- Yii2框架數(shù)據(jù)庫簡單的增刪改查語法小結(jié)
- YII2數(shù)據(jù)庫查詢實踐
- yii數(shù)據(jù)庫的查詢方法
- Yii框架連接mongodb數(shù)據(jù)庫的代碼
相關文章
在thinkphp5.0路徑中實現(xiàn)去除index.php的方式
今天小編就為大家分享一篇在thinkphp5.0路徑中實現(xiàn)去除index.php的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
laravel框架學習筆記之組件化開發(fā)實現(xiàn)方法
這篇文章主要介紹了laravel框架學習筆記之組件化開發(fā)實現(xiàn)方法,結(jié)合實例形式分析了laravel框架組件化開發(fā)相關的實現(xiàn)步驟與操作注意事項,需要的朋友可以參考下2020-02-02
使用PHP Socket 編程模擬Http post和get請求
這篇文章主要介紹了使用PHP Socket 編程模擬Http post和get請求 ,需要的朋友可以參考下2014-11-11
PHP+shell腳本操作Memcached和Apache Status的實例分享
這篇文章主要介紹了PHP環(huán)境下使用shell腳本操作Memcached和Apache Status的方法,分別還可以控制Memcached進程的啟動以及記錄Apache Status數(shù)據(jù)到數(shù)據(jù)庫,需要的朋友可以參考下2016-03-03

