Щоб підключитися до кількох баз даних у фреймворку Yii2, потрібно:
1. Створити два конфіги підключення до БД у конфігураційному файлі сайту. У мене підключення винесені в окремі файли, і мають такий вигляд (приклад).
Підключення до першої бази даних:
return [ 'class' => 'yiidbConnection', 'dsn' => 'mysql:host=127.0.0.1;dbname=work_db1', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'tablePrefix' => 'tbl_', ];
Підключення до другої бази даних:
return [ 'class' => 'yiidbConnection', 'dsn' => 'mysql:host=127.0.0.1;dbname=work_db2', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'tablePrefix' => 'tbl_', ];
2. У базовому конфігураційному файлі прописуємо:
'db' => require(__DIR__ . '/db.php'), 'db2' => require(__DIR__ . '/db2.php'),
Отримуємо вміст бази даних за нашим SQL-запитом:
$Query = (new yiidbQuery());
$Command = Yii::$app -> db2;
$data_ar = $Command -> createCommand(
$Query -> select('*')
-> from('{{%authitem}}')
-> createCommand()
-> getRawSql()
)
-> queryAll();
echo"<pre>";print_r($data_ar);echo"</pre>";