Инструменты пользователя

Инструменты сайта


yii:yii2:multipledb

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
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>​
yii/yii2/multipledb.1597910068.txt.gz · Последние изменения: 2023/01/12 11:38 (внешнее изменение)