2013-03-23 70 views
0

我使用CakePHP v2.x.我目前的數據庫是MySQL。我的需求是在控制器下編寫的方法/函數內連接到其他數據庫。所以我做了什麼至今在配置/ database.php中添加其他數據庫連接陣列$測試。多個數據庫連接問題的CakePHP版本2.x

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'的表。所以我創建了一個新的Model;

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

你似乎已經使用了錯誤的名稱爲您的模型(複數而不是單數);

class Aezips extends AppModel {} 

應該是:

class Aezip extends AppModel {} 

而正確的文件名應該是app/Model/Aezip.php

此外,一定要啓用「調試」內app/Config/core.php這樣您就可以看到正在執行的查詢。此外,這將刷新CakePHP的緩存更多的時候,這將減少使用「緩存」模型定義的風險。

您可以使用debug($variable);來調試您的變量而不是print_r($variable);