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,那麼具體的 就會是下面這種方式...