本文實例講述了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框架的PHP程序設計有所幫助。
新聞熱點
疑難解答
圖片精選