Yii框架實現多資料庫配置和操作的方法

2022-10-06 08:15:08 字數 1300 閱讀 2966

yii的預設配置為乙個資料庫,不過可以很容易的支援多個資料庫的操作,

這為按業務分割資料庫提供了基礎設施。如下所示:

//cms db connection

'db' => (defined('db_conne程式設計客棧ction') ? 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

'www.cppcns.comdb_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()),

然後在模型中過載getdbcon程式設計客棧nection函式,比如:

class point extends cactiverecord

...}

如果有很多模型會使用db_member, 可以程式設計客棧從cactiverecord派生乙個子類:cmemberactiverecord, 把getdbconnection的重寫放在該ar的子類中。

然後模型都從該cmemberactiverecord中派生。

多資料庫配置遇到的乙個典型的錯誤是:

object configuration must be an array containing a class element

原因是配置中非$db的其他資料庫沒有設定class屬性,新增該屬性並設定其值為cdbconnection即可。

參考鏈結:

Lumen框架多資料庫連線配置方法

lumen作為一款api導向很濃的框架,配置極簡化,預設只支援一路db配置 然而隨著業務複雜度的提高,引入多個資料庫連線似乎無法避免,下面介紹一下lumen連線多個資料庫的配置方法 db1 配置 db connection mysql db host 127.0.0.1 db port 3306 d...

ActiveRecord 之 多資料庫配置

activerecord 的多資料庫配置基本沿襲了 nhibernate 的思想,只不過在配置檔案結構上作了些調整。1.採用繼承方式,歸納使用同一資料庫的型別。比如 a b c d e 中 a b連線到資料庫test1,c d連線到test2,而e連線到預設的test,那麼具體的 就會是下面這種方式...

ActiveRecord 之多資料庫配置

activerecord 的多資料庫配置基本沿襲了 nhibernate 的思想,只不過在配置檔案結構上作了些調整。1.採用繼承方式,歸納使用同一資料庫的型別。比如 a b c d e 中 a b連線到資料庫test1,c d連線到test2,而e連線到預設的test,那麼具體的 就會是下面這種方式...