2011-06-17 83 views
0

我在检查DooPHP,我似乎无法找到如何同时使用多个数据库连接。我只想拥有多个数据库对象并使用它们的方法来查询数据库。现在我正在做这个:在DooPHP中使用多个数据库

Doo::db()->setDb($dbconfig, $config['APP_MODE']); 
Doo::db()->query('.......'); 

然后再次setDb当我想使用另一个数据库。尽管如此,这是迟缓的。在API文档中也很难找到您要查找的内容。

这里有什么帮助吗?

+0

你有没有试图将数据库名称特定到SQL?假设所有数据库都在同一个主机上,在相同的端口上侦听,相同的用户对这两个数据库具有相同的权限 – ajreal 2011-06-17 14:47:49

回答

0

解决的办法是这样做的index.php中:

Doo::loadCore('db/DooSqlMagic'); 
$db = new DooSqlMagic; 
$db->setDb($dbconfig, 'db'.$config['APP_MODE']); 
$db->connect(); 

$db2 = new DooSqlMagic; 
$db2->setDb($dbconfig, 'db2'.$config['APP_MODE']); 
$db2->connect(); 

这db.conf.php:

$dbconfig['dbdev'] = array('localhost', 'db', 'root', '', 'mysql', true, 'collate'=>'utf8_unicode_ci', 'charset'=>'utf8'); 
$dbconfig['dbprod'] = array('localhost', 'db', 'root', '', 'mysql', true, 'collate'=>'utf8_unicode_ci', 'charset'=>'utf8'); 

$dbconfig['db2dev'] = array('localhost', 'db2', 'root', '', 'mysql', true, 'collate'=>'utf8_unicode_ci', 'charset'=>'utf8'); 
$dbconfig['db2prod'] = array('localhost', 'db2', 'root', '', 'mysql', true, 'collate'=>'utf8_unicode_ci', 'charset'=>'utf8'); 

并在控制器使用这样的:

global $db; 
global $db2; 
$db->query('.......'); 
$db2->query('......');