2012-05-31 71 views
0

我正在尋找一種方法來在Cakephp中創建一個變量數據庫。 我正在創建一個數據庫設置(用戶,通過,數據庫)的網站取決於登錄的用戶。數據庫設置來自另一個數據庫。 由於提前,可變數據庫設置Cakephp

亞倫

- ANSWER

感謝您的快速回復。 我知道如何在數據庫之間切換,但數據庫設置必須是可變的。 例

$db = $this->DB_SET['DB_SET']['db']; //from model DB_SET the database 
    $db_login= $this->DB_SET['DB_SET']['login']; 
    $db_host= $this->DB_SET['DB_SET']['host']; 
    $db_pass= $this->DB_SET['DB_SET']['pass']; 
    var $db2 = array(
      'driver' => 'mysql', 
      'persistent' => false, 
      'host' => $db_host, 
      'login' => $db_login, 
      'password' => $db_pass, 
      'database' => $db, 
      'prefix' => '', 
      'encoding' => 'UTF8', 
      'port' => '', 
     ); 

回答

2

如果你正在尋找動態創建數據庫連接,您可能需要使用ConnectionManager::create()

// get logged in user's id and create a connection for them 
$id = $this->Auth->user('id'); 
ConnectionManager::create("user_$id_db", array(
    'driver' => 'mysql', 
    'persistent' => false, 
    'host' => $db_host, 
    'login' => $db_login, 
    'password' => $db_pass, 
    'database' => $db, 
    'prefix' => '', 
    'encoding' => 'UTF8', 
    'port' => '', 
)); 

然後設置您的模型以在準備就緒時使用它。

// get logged in user's id and use their connection 
$id = $this->Auth->user('id'); 
$this->Model->setDataSource("user_$id_db"); 
+0

太棒了! 它工作得很好!非常感謝!! – Aaron