我需要使用Wordpress对我的应用程序进行集成。我有一个模块。但我需要使用不同的数据库实例。在我的应用程序中,我使用'default',在Wordpress模块中,我想使用'wordpress'数据库实例。我怎样才能做到这一点?因为modules \ wordpress \ init.php中的Database :: $ default ='wordpress'设置了Module和App的实例。
答案 0 :(得分: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
模块,那么在使用WordPress数据库的每个Model
中都会这样做:
protected String $_db_group = 'wordpress';
(或者,您可以创建一个抽象类......
abstract class Model_WordPress extends ORM
{
protected String $_db_group = 'wordpress';
}
...然后让您的WordPress Model
扩展Model_WordPress
而不是直接来自ORM
。例如,class Model_WordPress_Post extends Model_WordPress ...
。)