回答
1.我們將開始配置數據庫連接。打開受保護/配置/ main.php和作爲指南中所述定義一個主連接:
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=db1',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
),
2.然後將它複製,重命名「DB」組件「DB2」,並相應地改變它的連接字符串。此外,您還需要添加類名如下:
'db2'=>array(
'class'=>'CDbConnection',
'connectionString' => 'mysql:host=localhost;dbname=db2',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
),
3.Then複製,重命名爲「DB」組件「DB3」,並相應地更改連接字符串。此外,您需要添加類名稱如下:
'db2'=>array(
'class'=>'CDbConnection',
'connectionString' => 'mysql:host=localhost;dbname=db2',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
),
4.就是這樣。現在,你有兩個數據庫連接,可與DAO和查詢生成器使用它們如下:
$db1Rows = Yii::app()->db->createCommand($sql)->queryAll();
$db2Rows = Yii::app()->db2->createCommand($sql)->queryAll();
$db3Rows = Yii::app()->db2->createCommand($sql)->queryAll();
感謝Nanhe,但它不是我正在尋找的,我需要一次從三個數據庫中獲取結果(一個查詢/行) ,同一時間 –
您可以編寫自己的函數示例getAllData(){0} {0} {0} {0}; $ sql =「SELECT * FROM table_name」; $ db1Rows = Yii :: app() - > db-> createCommand($ sql) - > queryAll(); $ db2Rows = Yii :: app() - > db2-> createCommand($ sql) - > queryAll(); $ db3Rows = Yii :: app() - > db2-> createCommand($ sql) - > queryAll(); return array_merge($ db1Rows,$ db2Rows,$ db3Rows); –
只需添加新的數據庫連接到config/main.php
'db1'=>array(
'connectionString' => 'mysql:host=localhost;dbname=database1',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
),
'db2'=>array(
'connectionString' => 'mysql:host=localhost;dbname=database2',
'username' => 'root',
'password' => '',
'class'=>'CDbConnection', // DO NOT FORGET THIS!
),
,現在你可以連接到你的數據庫是這樣的:
Yii::app()->db1 ...
Yii::app()->db2 ...
檢查這篇文章,更解釋:
http://www.yiiframework.com/wiki/123/multiple-database-support-in-yii/
和這樣的:當連接表
http://www.yiiframework.com/wiki/78/multiple-databases-and-multiple-domains/
- 1. yii多個數據庫連接關係
- 2. 多個數據庫連接
- 3. 多個數據庫連接
- 4. 多個數據庫連接
- 5. 多個數據庫連接和Yii的2.0
- 6. PHP Yii:運行時數據庫連接
- 7. 數據庫連接Yii框架
- 8. 動態更改數據庫連接Yii
- 9. yii多個內連接
- 10. yii中的多個連接
- 11. SQL連接來自多個數據庫連接的多個表
- 12. yii與hive數據庫的數據庫連接
- 13. H2數據庫多連接
- 14. Codeignitor多數據庫連接
- 15. Codeigniter多個數據庫連接
- 16. 發揮1.2.5多個數據庫連接
- 17. Play Framework 1.2.6連接多個數據庫
- 18. 數據庫中的多個連接
- 19. Java連接到多個數據庫
- 20. R中的多個數據庫連接
- 21. 查詢多個數據庫連接
- 22. php - 與數據庫的多個連接
- 23. 多個數據庫連接類
- 24. rufus-scheduler和多個數據庫連接
- 25. yii2上的多個數據庫連接
- 26. StackExchange.Redis連接到多個數據庫
- 27. Codeigniter連接到多個數據庫
- 28. Codeigniter - 多個數據庫連接
- 29. Codeigniter - 多個數據庫連接
- 30. 使用LINQ連接多個數據庫
使用別名。 – Rikesh
您可能正在尋找[sharding](http://www.codefutures.com/database-sharding/) - 這在Yii核心ATM中不受支持。 –
感謝邁克爾,這是一個術語,我正在尋找,我需要db分片 –