我在哪里将数据库配置值放在Codeigniter中?

时间:2012-03-05 18:11:28

标签: php codeigniter

我正在尝试连接到不同于我的数据库配置文件中的数据库。

我已经能够在我的模型中使用以下内容执行此操作:

        $wp['hostname'] = "localhost";
        $wp['username'] = "root";
        $wp['password'] = "";
        $wp['database'] = "transfer";
        $wp['dbdriver'] = "mysql";
        $wp['dbprefix'] = "";
        $wp['pconnect'] = FALSE;
        $wp['db_debug'] = TRUE;
        $wp['cache_on'] = FALSE;
        $wp['cachedir'] = "";
        $wp['char_set'] = "utf8";
        $wp['dbcollat'] = "utf8_general_ci";

        $wpDB = $this->load->database($wp, TRUE);

然后像这样运行查询:$query = $wpDB->get();

我只能在配置值在模型本身时才能使它工作(因此会有很多重复)。我已经尝试将配置数组放在构造函数中,但是我收到一个无法找到它的错误。

我在哪里可以放置配置数组,所以我不必复制它,并且整个模型都可以使用它?

5 个答案:

答案 0 :(得分:3)

数据库配置通常在config/database.php。您可以配置多个数据库连接并使用不同的组名存储它们:

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'host1';
$db['default']['username'] = 'user1';
$db['default']['password'] = '******';
$db['default']['database'] = 'my_db';

$db['other']['hostname'] = 'host2';
$db['other']['username'] = 'user2';
$db['other']['password'] = '******';
$db['other']['database'] = 'my_other_db;

$active_group是指加载数据库类时的默认组。要连接到模型中的其他组,可以在模型的__construct方法中使用它:

$this->db = $this->load->database('other', TRUE);

虽然这对于更灵活的$this->load->model('model_name', 'alias', $config)方法效果不佳,但可能更容易。

更多信息:http://codeigniter.com/user_guide/database/connecting.html

答案 1 :(得分:2)

我认为this可以直接从codeigniter论坛帮助您:)

答案 2 :(得分:2)

Code Igniter中有一个配置目录,您可以在其中添加自己的配置文件:

system/application/config

在同一目录中有一个autoload.php文件,您可以在其中指定要加载的其他配置文件。

答案 3 :(得分:0)

您可以使用CodeIgniter中的配置文件。

要检索配置变量,请使用:

$this->config->item('item name');

docs

中的更多信息

答案 4 :(得分:0)

由于您的配置数据似乎与数据库相关,请将它们存储在

  

系统/应用/配置/ database.php中