Mysql 在Cakephp中处理数据库连接错误

Mysql 在Cakephp中处理数据库连接错误,mysql,database,cakephp,Mysql,Database,Cakephp,目前,我在数据库配置文件中使用Cakephp中的动态数据库切换。我正在根据子域ie:TEST.mysite.com和PROD.mysite.com进行切换 如果存在数据库连接,那么测试和重定向的最佳位置是什么 谢谢 kSeudo快速而肮脏的方法是在构造函数中设置一个条件。我之所以说dirty,是因为它创建了一个条件配置,并且引入了一个bug,可能会使您的生产应用程序连接到dev数据库 class DATABASE_CONFIG { public $default = array(

目前,我在数据库配置文件中使用Cakephp中的动态数据库切换。我正在根据子域ie:TEST.mysite.com和PROD.mysite.com进行切换

如果存在数据库连接,那么测试和重定向的最佳位置是什么

谢谢


kSeudo

快速而肮脏的方法是在构造函数中设置一个条件。我之所以说dirty,是因为它创建了一个条件配置,并且引入了一个bug,可能会使您的生产应用程序连接到dev数据库

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;
        }
    }
}
要测试连接,可以将以下内容放入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;
    }
}
哪一个版本的cakephp(1.x或2.x),您可以发布一个配置示例吗。