課程
/后端開發(fā)
/PHP
/Yii框架不得不說的故事—基礎篇(1)
請問如何在db.php中配置多個數(shù)據(jù)庫呢
2017-05-01
源自:Yii框架不得不說的故事—基礎篇(1) 5-1
正在回答
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即可。
qq_小寒 提問者
舉報
通過本視頻教程,為學習YII的快速、安全、專業(yè)的特性打下基礎
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2017-05-02
Yii的默認配置為一個數(shù)據(jù)庫,不過可以很容易的支持多個數(shù)據(jù)庫的操作,
這為按業(yè)務分割數(shù)據(jù)庫提供了基礎設施。如下所示:
然后在模型中重載getDbConnection函數(shù),比如:
如果有很多模型會使用db_member, 可以從CActiveRecord派生一個子類:CMemberActiveRecord, 把getDbConnection的重寫放在該AR的子類中。
然后模型都從該CMemberActiveRecord中派生。
多數(shù)據(jù)庫配置遇到的一個典型的錯誤是:
Object?configuration?must?be?an?array?containing?a class element
原因是配置中非$db的其他數(shù)據(jù)庫沒有設置class屬性,添加該屬性并設置其值為CDbConnection即可。