如何在CodeIgniter中访问DB配置?

8e2ybdfx  于 2023-03-16  发布在  其他
关注(0)|答案(6)|浏览(92)

在我的应用程序中,我需要知道为databaseusername等DB配置项分配了哪些值。如何访问这些信息?

7cjasjjr

7cjasjjr1#

我没有足够的代表评论马特布朗的正确答案,但只是增加了一点,以防有人忘记...
首先像这样加载db驱动程序:

$this->load->database();

那么您就可以轻松访问所需的内容:

$this->db->hostname
$this->db->username
$this->db->password
$this->db->database
jv2fixgn

jv2fixgn2#

几乎所有的配置值都可以通过$this-〉db访问(请查看system/database/DB_driver. php)。
这就是对我起作用的...这里的其他建议都没有。
举个例子

$config = [ 
     'host'     => $this->db->hostname,
     'port'     => '3306',
     'username' => $this->db->username,
     'password' => $this->db->password,
     'database' => $this->db->database
];

有关详细信息:https://stackoverflow.com/a/23666778/560114

ni65a41a

ni65a41a3#

如果您在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-〉主机名、$db-〉用户名等形式提供。

pdtvr36n

pdtvr36n4#

我偶然发现了这个问题,寻找找到所有DB设置的方法。无法在线找到解决方案,但在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'];
    }
klh5stk1

klh5stk15#

您应该能够获得如下配置设置:

$this->config['env']
t1rydlwq

t1rydlwq6#

您可以使用以下命令检索它:http://codeigniter.com/user_guide/libraries/config.html

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

相关问题