Home >php教程 >php手册 >Load database config file from libraries in CodeIg

Load database config file from libraries in CodeIg

WBOY
WBOYOriginal
2016-06-06 20:13:451240browse

Sometime you will want to load database config variables from your libraries.In this case, if you use $this-_CI-config-load(database) , you will get an error: $this-_CI = get_instance();$this-_CI-config-load('database'); The error somthing

Sometime you will want to load database config variables from your libraries.In this case, if you use $this->_CI->config->load(‘database’), you will get an error:

$this->_CI = &get_instance();
$this->_CI->config->load('database');

The error somthing like Your application/config/database.php file does not appear to contain a valid configuration array.

The source is in `system/core/Config.php#138`:

// CodeIgniter Version 2.1.4
if ( ! isset($config) OR ! is_array($config))
{
	if ($fail_gracefully === TRUE)
	{
		return FALSE;
	}
	show_error('Your '.$file_path.' file does not appear to contain a valid configuration array.');
}

You can find that the config will lookup an array with the name $config, but in your database’s config file it contains array variable with the name $db?defaultly.This is the reason you got the invalid configuration array error message.

To correctly load database configuration from libraries,you can you code below:

$this->_CI->load->database('default');
$db = $this->_CI->db;
Something::config(['driver'=> 'mysql','host'=> $db->hostname,
    'dbname'=> $db->database,
    'user'=> $db->username,
    'password'=> $db->password]);

Notice the `default` is the active group in your database configuration file.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn