我正在使用CakePHP v2.x.我目前的数据库是MySQL。我需要连接到在控制器下编写的方法/函数中的其他数据库。所以我到目前为止所做的是在Config / database.php中添加另一个数据库连接数组$ test。
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'test',
'password' => 'test1',
'database' => 'test_portal',
'prefix' => ''
//'encoding' => 'utf8',
);
public $test = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'dfffd_23',
'password' => 'dsfsd324',
'database' => 'testdbuser',
'prefix' => ''
//'encoding' => 'utf8',
);
}
我需要连接一个名为'aezips'的表。所以我创建了一个新模型;
class Aezips extends AppModel {
public $name = 'Aezip';
public $useDbConfig = 'test';
//public $useTable = 'aezips';
}
在我的控制器中添加;
public $uses = array('Aezip');
控制器具有名为add的函数/方法,
public function add() {
$this->layout = NULL;
$this->autoRender = false; //will prevent render of view
if($this->RequestHandler->isAjax()){
Configure::write('debug', 0); //it will avoid any extra output
}
//$this->Aezip->useDbConfig('test');
$t = $this->Aezip->find('all'); //To fetch data from aezips table
print_r($t);
print_r($this->data);
}
但我无法连接到Aezip表,也没有显示任何错误。两个数据库都驻留在同一台服务器上,但不同的cpanel帐户。
答案 0 :(得分:0)
您似乎使用了错误的模型名称(复数而不是单数);
class Aezips extends AppModel {}
应该是:
class Aezip extends AppModel {}
正确的文件名应为app/Model/Aezip.php
此外,请务必在app/Config/core.php
中启用“debug”,以便您可以查看已执行的查询。此外,这将更频繁地刷新CakePHP缓存,这将降低使用“缓存”模型定义的风险。
您可以使用debug($variable);
代替print_r($variable);