#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’), чтобы использовать другое в случае сбоя первого.