我正在寻找一种在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' => '',
);
答案 0 :(得分: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");