我正在使用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';在模型中
答案 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