多个数据库连接问题CakePHP v2.x

时间:2013-03-23 11:30:11

标签: cakephp-2.0

我正在使用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帐户。

1 个答案:

答案 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);

调试变量