本文實例講述了Yii框架實現多數據庫配置和操作的方法。分享給大家供大家參考,具體如下:
Yii的默認配置為一個數據庫,不過可以很容易的支持多個數據庫的操作,
這為按業務分割數據庫提供了基礎設施。如下所示:
//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函數,比如:
class Point extends CActiveRecord { public function getDbConnection() { return Yii::app()->db_member; } ... }
如果有很多模型會使用db_member, 可以從CActiveRecord派生一個子類:CMemberActiveRecord, 把getDbConnection的重寫放在該AR的子類中。
然后模型都從該CMemberActiveRecord中派生。
多數據庫配置遇到的一個典型的錯誤是:
Object configuration must be an array containing a class element
原因是配置中非$db的其他數據庫沒有設置class屬性,添加該屬性并設置其值為CDbConnection即可。
參考鏈接:
http://yiihaa.com/models-and-multiple-database-connections
更多關于Yii相關內容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結》、《php優秀開發框架總結》、《smarty模板入門基礎教程》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家基于Yii框架的PHP程序設計有所幫助。
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。