有使用多个数据库的codeigniter站点配置?

时间:2018-12-14 16:37:58

标签: php codeigniter

不确定这是否是正确的处理方式,但想知道是否有人对如何实现这一目标有任何想法或建议。

我想创建一个名为demo.mysite.com的子域

,我希望它加载位于public_html中的codeigniter应用程序,但是如果子域是demo。然后它将加载另一个数据库,而不是主要数据库

以下内容来自config / database.php

$db['default']['username'] = "main";
$db['default']['password'] = "password!";
$db['default']['database'] = "mainsite";

我要这样做的原因是我仍然对网站进行更改,并且不想每次进行更改时都必须将整个网站复制到演示文件夹中。

希望这很有意义

2 个答案:

答案 0 :(得分:1)

在配置目录中创建两个子目录

aplication
  config
     site1
     site2

将配置目录的其他文件移动到该子目录

在index.php中,将一个站点的环境常量设置为site1,将另一个站点的环境设置为site2。要设置正确的错误报告,请将site1和site2添加到具有所需报告状态的下面的开关操作符

define('ENVIRONMENT', 'site1');

switch (ENVIRONMENT)
{
    case 'development':
    case 'site1':
...

CI从名为ENVIRONMENT的子目录中获取配置文件

答案 1 :(得分:0)

在配置database.php中,您可以创建不同的数据库组,已经存在的数据库组是default组:

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => '',
    'password' => '',
    'database' => '',
    ...

您可以使用任何名称创建另一个组:

$db['another_group'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => '',
    'password' => '',
    'database' => '',
    ...

然后您可以使用以下方法连接到另一个数据库:

$this->load->database('another_group', TRUE);

您将在文档here

中找到更多详细信息