Cakephp删除不适用于多个DB连接

时间:2014-01-18 07:58:43

标签: cakephp

我正在使用cakephp 2.4,我正在开发一个项目,该项目使用基于用户登录的两个数据库连接。访问第二个数据库和检索数据时工作正常,但是当我删除第二个数据库表记录中的记录时它的抛出错误为..

Invalid catalog name: 1046 No database selected

任何人都可以帮忙...

这是我的数据库连接代码

$this->default['host'] = 'localhost';
$this->default['login'] = 'xxxxxx';
$this->default['password'] = 'xxxx';
$this->default['database'] = 'xxxxx';
$this->default['prefix'] = 'xxxx_';
if(!empty($_SESSION['subsites'])){
$this->test['host'] = 'localhost';
$this->test['login'] = 'xxxx';
$this->test['password'] = 'xxxxx';
$this->test['database'] = 'ccxxxx';
$this->test['prefix'] = 'xxxx'.'_';
}

然后我们用$ useDBconfig ='test';在模型中

2 个答案:

答案 0 :(得分:1)

将app / config / database.php中的多个数据库配置定义为

   public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'root',
    'password' => '',
    'database' => 'db1',
    'prefix' => '',
    //'encoding' => 'utf8',
);

public $subSites = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'root',
    'password' => '',
    'database' => 'db2',
    'prefix' => '',
    //'encoding' => 'utf8',
);

现在,当您想切换到subSites配置时,只需编写以下代码:

$this->Model->useDbConfig = $subSites;

答案 1 :(得分:0)

您可以在模型中使用 $ useDbConfig 属性。

 class Example extends AppModel {
    public $useDbConfig = 'user';
}

在您的控制器内部,只需使用:

 $this->ModelName->useDbConfig = 'user';

了解更多详情,请点击http://book.cakephp.org/2.0/en/models/model-attributes.html