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 帐户不同。

4

1 回答 1

0

您似乎为您的模型使用了错误的名称(复数而不是单数);

class Aezips extends AppModel {}

应该:

class Aezip extends AppModel {}

正确的文件名应该是app/Model/Aezip.php

此外,请务必在内部启用“调试”,app/Config/core.php以便您可以看到执行的查询。此外,这将更频繁地刷新 CakePHP 缓存,从而降低使用“缓存”模型定义的风险。

您可以使用debug($variable);而不是调试变量print_r($variable);

于 2013-03-23T16:42:40.297 回答