Как получить доступ к конфигурации БД в CodeIgniter? - PullRequest
9 голосов
/ 07 декабря 2011

В моем приложении мне нужно знать, какие значения назначены элементам конфигурации БД, таким как database, username и т. Д. Как получить доступ к этой информации?

Ответы [ 6 ]

44 голосов
/ 15 мая 2014

Мне не хватает представителя, чтобы прокомментировать правильный ответ Мэтта Брауна, но я просто добавляю немного, если кто-нибудь забудет ...

сначала загрузите драйвер БД, например:

$this->load->database();

тогда вы можете легко получить доступ к тому, что вам нужно:

$this->db->hostname
$this->db->username
$this->db->password
$this->db->database
7 голосов
/ 07 января 2013

Практически все значения конфигурации доступны через $ this-> db (взгляните на system / database / DB_driver.php).

Это то, что сработало для меня ... ни один из других предложений здесь не сделал.

6 голосов
/ 09 октября 2014

Если у вас есть несколько групп соединений с базой данных, определенных в config / database.php, например:

  $db['dbname']['hostname'] = "localhost";
  $db['dbname']['username'] = "root";
  $db['dbname']['password'] = "root";
  $db['dbname']['database'] = "web_dbname";

  $db['dbname_readonly']['hostname'] = "localhost";
  $db['dbname_readonly']['username'] = "root";
  $db['dbname_readonly']['password'] = "root";
  $db['dbname_readonly']['database'] = "web_dbname_readonly";

Если вы хотите использовать параметры соединения какой-либо конкретной базы данных в контроллере или модели:

  $db = $this->load->database('dbname');

Если вы хотите использовать в качестве помощника или библиотеки:

  $ci = &get_instance();
  $db = $ci->load->database('dbname');

Параметры соединения будут доступны как $ db-> hostname, $ db-> username и т. Д.

1 голос
/ 19 февраля 2017

Я наткнулся на это, ища способ найти все настроек БД.Не удалось найти решение онлайн, но нашел некоторый полезный код в system/database/DB.php

Вот мой подход, получить содержимое всей конфигурации базы данных:

    if ( ! file_exists($f = APPPATH.'config/'.ENVIRONMENT.'/database.php')
        && ! file_exists($f = APPPATH.'config/database.php'))
    {
        show_error('The configuration file database.php does not exist.');
    }

    include($f);

    // Use a NEW variable.  
    // Because $db is a reserved name!!
    $db_settings = $db;

    foreach($db_settings as $key => $value) {
        // .. do something with .. $this->database->load($key);
        // .. do something with .. $value['database'];
        // .. do something with .. $value['password'];
    }
0 голосов
/ 07 декабря 2011

Вы должны быть в состоянии получить настройки вашей конфигурации следующим образом:

$this->config['env']
0 голосов
/ 07 декабря 2011

Вы можете получить его с помощью этого: http://codeigniter.com/user_guide/libraries/config.html

$this->config->item('item name');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...