Обращение к разным БД через построить запросов

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
long399
Сообщения: 15
Зарегистрирован: 2019.08.13, 08:03
Откуда: г. Новосибирск

Обращение к разным БД через построить запросов

Сообщение long399 » 2019.11.11, 08:53

Доброго времени суток, товарищи.

Имеется подключение к двум разным базам данных:

Код: Выделить всё

// БД 1
return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=yii2advanced',
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8',
];

Код: Выделить всё

// БД 2
return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=test',
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8',
];
Подключены как компоненты приложения:

Код: Выделить всё

$db_1 = require __DIR__ . '/db_1.php';
$db_2 = require __DIR__ . '/db_2.php';
'db_1' => $db_1 ,
'db_2' => $db_2 ,
Знаю, что к ним можно обращаться следующим образом:

Код: Выделить всё

Yii::$app->db_1->createCommand('SELECT * FROM post')
            ->queryAll();
Yii::$app->db_2->createCommand()->insert('user', [
    'name' => 'Sam',
    'age' => 30,
])->execute();
Но мне хотелось бы узнать, можно ли выполнять запросы к этим двум базам данных используя построитель запросов \yii\db\Query ?

Код: Выделить всё

use \yii\db\Query;
...
$rows = (new Query())
    ->select(['id', 'email'])
    ->from('user')
    ->where(['last_name' => 'Smith'])
    ->limit(10)
    ->all();
Как в эту конструкцию можно вклинить указание определенной БД и можно ли ?

urichalex
Сообщения: 965
Зарегистрирован: 2015.08.07, 11:03

Re: Обращение к разным БД через построить запросов

Сообщение urichalex » 2019.11.11, 09:34

Код: Выделить всё

$rows = (new Query())
    ->select(['id', 'email'])
    ->from('user')
    ->where(['last_name' => 'Smith'])
    ->limit(10)
    ->all(Yii::$app->db_2);

long399
Сообщения: 15
Зарегистрирован: 2019.08.13, 08:03
Откуда: г. Новосибирск

Re: Обращение к разным БД через построить запросов

Сообщение long399 » 2019.11.11, 09:49

спасибо, это помогло :!:

Ответить