Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
yii:yii2:multipledb [2020/08/20 10:54] werwolf |
yii:yii2:multipledb [2023/01/12 12:18] (текущий) |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | =====Multiple database connections===== | ||
| + | В config добавить вторую конфигурацию базы данных ниже следующим образом : | ||
| + | |||
| + | <code php> | ||
| + | return [ | ||
| + | 'components' => [ | ||
| + | 'db' => [ | ||
| + | 'class' => 'yii\db\Connection', | ||
| + | 'dsn' => 'mysql:host=db;dbname=dev', | ||
| + | 'username' => 'root', | ||
| + | 'password' => '2619192', | ||
| + | 'charset' => 'utf8', | ||
| + | ], | ||
| + | 'db2' => [ //mssql_octell | ||
| + | 'class' => 'yii\db\Connection', | ||
| + | 'dsn' => 'sqlsrv:Server=192.168.103.2,1038;Database=oktell', // MSSql АТС Oktell | ||
| + | 'username' => 'sa', | ||
| + | 'password' => '123', | ||
| + | |||
| + | ], | ||
| + | .......................... | ||
| + | </code> | ||
| + | |||
| + | теперь вы можете просто генерировать запросы: | ||
| + | <code php> | ||
| + | // To get from db1 | ||
| + | Yii::$app->db->createCommand((new \yii\db\Query)->select('*')->from('tbl_name'))->queryAll() | ||
| + | |||
| + | // To get from db2 | ||
| + | Yii::$app->db2->createCommand((new \yii\db\Query)->select('*')->from('tbl_name'))->queryAll() | ||
| + | </code> | ||
| + | |||
| + | Если вы используете активную модель записи, в модели можно определить: | ||
| + | <code php> | ||
| + | public static function getDb() { | ||
| + | return Yii::$app->db2; | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | |||
| + | Если вы установили db2 в getDb() методе, результат будет получен с db2 и так далее. | ||
| + | |||
| + | <code php> | ||
| + | ModelName::find()->select('*')->all(); | ||
| + | </code> | ||