我需要为我的应用程序与 Wordpress 进行集成。我有一个模块。但我需要使用不同的数据库实例。在我的应用程序中,我使用“默认”,而在 Wordpress 模块中,我想使用“wordpress”数据库实例。我怎样才能做到这一点?因为 modules\wordpress\init.php 中的 Database::$default = 'wordpress' 为 Module 和 App 设置了实例。
问问题
185 次
1 回答
0
如果您在配置文件中定义了两个数据库连接,如下所示:
config/database.php
(可以在APPPATH
,MODPATH
等中)
return array
(
'default' => array
(
'type' => 'mysql',
'connection' => array(
'hostname' => 'localhost',
'username' => 'dbuser',
'password' => 'mypassword',
'persistent' => FALSE,
'database' => 'my_db_name',
),
'table_prefix' => '',
'charset' => 'utf8',
),
'wordpress' => array(
'type' => 'mysql',
'connection' => array(
'hostname' => 'localhost',
'username' => 'other_user',
'password' => 'mypassword',
'persistent' => FALSE,
'database' => 'wordpress',
),
'table_prefix' => '',
'charset' => 'utf8',
),
);
那么你可以像这样引用它们:
// This would connect to the database defined as 'default'
$default = Database::instance();
// This would connect to the database defined as 'wordpress'
$remote = Database::instance('wordpress');
如果您正在使用该ORM
模块,则在Model
使用 WordPress 数据库的每个模块中都这样做:
protected String $_db_group = 'wordpress';
(或者,您可以创建一个抽象类...
abstract class Model_WordPress extends ORM
{
protected String $_db_group = 'wordpress';
}
...然后让您的 WordPressModel
扩展Model_WordPress
而不是直接从ORM
. 例如,class Model_WordPress_Post extends Model_WordPress ...
。)
于 2013-12-26T05:51:15.003 回答