на CakePHP: как использовать и подключить альтернативную конфигурацию базы данных, если не удалось подключиться к БД с первой попытки

#database #cakephp #connection

#База данных #cakephp #подключение

Вопрос:

Мой вопрос: на CakePHP: как использовать и подключать альтернативную конфигурацию базы данных, когда не удалось подключиться к БД?

Основываясь на моем вопросе выше, просто дайте вам представление о том, что в традиционном программировании на php мы можем сделать так :

 $db_configs=array(
    0=>array('host'=>'localhost1','user'=>'root1','password'=>'password1'),
    1=>array('host'=>'localhost2','user'=>'root2','password2'=>'password2')
);

foreach($db_configs as $db_config)
{
   if(!mysql_connect($db_config['host'],$db_config['user'],$db_config['password'])
   {
      // DB Connection Failed, do nothing and try next db config...
   }
   else
   {
     echo 'DB Connection Success, Break';
     break;
   }
}
  

Итак, идея заключается в том, что скрипт пытается повторно подключиться к базе данных при сбое и использует альтернативную переменную конфигурации.

Как мы можем сделать это на CakePHP?

Спасибо.

Ответ №1:

Определите ваши две или более конфигурации в APP/config/database.php . Затем выполните проверку bootstrap.php

             $Database = ConnectionManager::getInstance();
            $Database->config = new DATABASE_CONFIG();

            $dataSource = $Database->getDataSource('default');
            if (!$dataSource->isConnected()) { ... } else { ... }
  

«default» — это соединение по умолчанию, просто используйте $Database->getDataSource(‘yourSecondDataSource’), чтобы использовать другое в случае сбоя первого.