2012-03-20 42 views
0

現在、データベース設定ファイルからCakephpで動的データベースの切り替えを使用しています。私はサブドメイン、すなわちTEST.mysite.comとPROD.mysite.comに基づいて切り替えています。CakephpでのDB接続エラーの処理

データベース接続がある場合、どのようにテストしてリダイレクトするのが最適な場所ですか?

おかげで、

kSeudo

+0

ためにコンストラクタに次のように置くことができ、あなたの例を投稿してくださいすることができ、接続をテストするには

class DATABASE_CONFIG { public $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => '', 'login' => '', 'password' => '', 'database' => '', 'prefix' => '', 'encoding' => 'utf8' ); public $testDB = array( 'driver' => 'mysql', 'persistent' => false, 'host' => '', 'login' => '', 'password' => '', 'database' => '', 'prefix' => '', 'encoding' => 'utf8' ); public function __construct() { if (false !== stripos($_SERVER['HTTP_HOST'], 'test')) { // Use the test DB since 'test' is present in the server host $this->default = $testDB; } } } 

config。 – RumpRanger

答えて

2

これを実行するために迅速かつ汚い方法は、コンストラクタに条件を置くことです。私はそれが条件付きの設定を作成し、バグの導入によって、あなたのプロダクションアプリがdevデータベースに接続されたままになる可能性があるため、汚いと言います。あなたは、CakePHPのバージョン(1.xまたは2.xの)app_model.php

public function __construct() 
{ 
    parent::__construct();     

    $db =& ConnectionManager::getDataSource('default'); 
    if (empty($db->connection)) 
    { 
      echo 'oh noes we werent able to connect'; 
      exit; 
    } 
} 
+0

驚くばかり、これは私が探していたものです。どうもありがとう。 – kSeudo