【问题标题】:Using multiple databases with DooPHP使用 DooPHP 使用多个数据库
【发布时间】:2011-06-17 13:34:35
【问题描述】:

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

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

然后当我想使用另一个数据库时再次 setDb。这虽然是落后的。在 API 文档中也很难找到您要查找的内容。

这里有什么帮助吗?

【问题讨论】:

  • 您是否尝试将数据库名称指定到 sql 中?假设所有数据库都在同一个主机上,监听同一个端口,同一个用户在两个数据库上拥有相同的权限

标签: php database frameworks doophp


【解决方案1】:

解决方案是在 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('......');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-13
    • 2010-10-12
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    相关资源
    最近更新 更多