Codeigniter 3 - 覆盖模型中的db主机名

时间:2015-09-17 08:55:17

标签: database codeigniter

我正在使用一个小的CI代码库在更大的代码库(Zend和Syfmony的混合)中运行一个简单的功能。

主系统使用引导程序文件来设置我通过创建库文件访问的各种全局变量。一切都很好,我可以访问CI应用程序中的父系统,函数和全局变量。

但是......父系统将数据库连接信息存储在服务器相关的覆盖文件中(因此,如果代码部署在服务器test.server上,则加载配置文件test.server,并将所有相关的变量设置为该服务器。

我需要做的是告诉我的数据库配置文件访问这些变量。 或者,在我的模型中,设置主机名,用户和传递变量。

我试过了:

$this->db->hostname = GLOBAL_VAR_HOSTNAME;

但这不起作用。

我可以将库文件中的任何数据传递到配置文件中,因此我可以设置:

$db['default'] = array(
'hostname' => GLOBAL_VAR_HOSTNAME,
'username' => GLOBAL_VAR_USERNAME,

等等

在标准数据库配置文件中设置所有数据库信息,因为新服务器一直在添加,技术主管希望使用现有系统共享变量。

我要去喝咖啡......

1 个答案:

答案 0 :(得分:1)

您可以设置如下手动连接:

$this->load->database(array(
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'ci',
    'dbdriver' => 'mysqli',
));

var_dump($this->db->get('posts')->result());

或者你可以完整地创建另一个连接:

$database = $this->load->database(array(
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'mydb',
    'dbdriver' => 'mysqli',
), TRUE);

var_dump($database->get('posts')->result());