Heim  >  Artikel  >  php教程  >  Load database config file from libraries in CodeIg

Load database config file from libraries in CodeIg

WBOY
WBOYOriginal
2016-06-06 20:13:451175Durchsuche

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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn