Ionize CMS - 带有第二个数据库的模块

时间:2015-06-26 08:04:30

标签: database module frameworks content-management-system

我是 Ionize CMS 世界的新手,我需要你的帮助。是否有可能使模块与第二个数据库一起使用?我们的想法是创建两种类型的网站:

  • 一个数据库管理(自己的数据库 db1 ),其中添加/修改和删除内容。本网站的数据库将为第二类网站提供内容

  • 第二种类型(具有自己的数据库 db2 ),将显示来自第一个网站db1的数据库的内容(基于特定配置,并不重要)。对于这个网站,我想制作一个模块,主要目的是从 db1

  • 获取数据

根据文档,我看到如何访问父数据库(CMS数据库db2)的模块,但现在不能使用其他数据库中的表(例如db1)

此类网站将安装在相同或不同的主机上。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:3)

由于Ionize是基于CodeIgniter的CMS,因此您可以使用更多数据库连接。 要在第二类网站上执行所需操作,您应该在\application\config\database.php

中定义数据库配置

示例配置

$db['db1']['hostname'] = '';
$db['db1']['username'] = '';
$db['db1']['password'] = '';
$db['db1']['database'] = '';
$db['db1']['dbdriver'] = 'mysqli';
$db['db1']['dbprefix'] = '';
$db['db1']['swap_pre'] = '';
$db['db1']['pconnect'] = FALSE;
$db['db1']['db_debug'] = FALSE;
$db['db1']['cache_on'] = FALSE;
$db['db1']['cachedir'] = '';
$db['db1']['char_set'] = 'utf8';
$db['db1']['dbcollat'] = 'utf8_unicode_ci';

$db['db2']['hostname'] = '';
$db['db2']['username'] = '';
$db['db2']['password'] = '';
$db['db2']['database'] = '';
$db['db2']['dbdriver'] = 'mysqli';
$db['db2']['dbprefix'] = '';
$db['db2']['swap_pre'] = '';
$db['db2']['pconnect'] = FALSE;
$db['db2']['db_debug'] = FALSE;
$db['db2']['cache_on'] = FALSE;
$db['db2']['cachedir'] = '';
$db['db2']['char_set'] = 'utf8';
$db['db2']['dbcollat'] = 'utf8_unicode_ci';

其中 db1 将是Ionizem使用的默认数据库, db2 将是来自网站类型1 的数据库。 在此之后,您可以使用以下内容对 db2 进行查询:

$this->remote_db = $this->load->database('db2', TRUE);
$query = $this->remote_db ->get('table_from_website_1');

有了这个方法,请不要使用持久连接(['pconnect'] = FALSE;

对我来说,这个配置就像一个魅力