2011-10-29 15 views
1

私の質問: CakePHPで:DBへの接続に失敗した場合、上記の私の質問に基づいてon CakePHP:最初の試行でDBへの接続に失敗した場合に代替データベース設定を使用して接続する方法

は、ちょうどあなたの伝統的な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で2つ以上の設定を定義します。そして、bootstrap.phpの

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

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

でチェックを行う「デフォルト」はデフォルトの接続で、ちょうど最初の1で障害が発生した場合に別のものを使用するように$データベース - >をgetDataSource(「yourSecondDataSource」)を使用します。

+0

そのコードをdatabase.phpに入れますか?真剣ですか? –

+0

私は決して言いませんでした。 – burzum

関連する問題