php - Codeigniter 加载不同的数据库配置

标签 php mysql codeigniter

在 CodeIgniter 中,如何从单独的文件而不是默认的 config\database.php 加载数据库?

假设在库下我有一个名为 db_configs 的文件夹。在每个数据库中,详细信息将存储在单独的文件中,例如。 DB_01.php、DB_02.php等

谢谢,

最佳答案

使用 CI 中内置的功能要容易得多,其中可以在一个文件中定义多个数据库连接。否则就是重新发明轮子。

加载数据库时可以选择任何给定的连接集(在 database.php 中定义)。例如,给定 DB_01 和 DB_02,您将加载它们

$this->load->database('DB_01');

$this->load->database('DB_02');

如果你同时需要两者,你可以这样做

$db1 = $this->load->database('DB_01', TRUE);
$db2 = $this->load->database('DB_02', TRUE);

但是如果您必须有单独的文件,则有几种不同的方法。 也许最简单的方法是使用助手

application/helpers/db2_helper.php

function db2Config()
{
  return array(
    'dsn' => '',
    'hostname' => 'localhost',
     ... etc.
  );
}

在一些 Controller 中

$this->load->helper('db2');
$db2_settings = db2Config();
$this->load->database($db2_settings);

也可以像这样使用 Config 类来完成。

application/config/db2.php

<?php

$config['dsn'] = '';
$config['hostname'] = 'localhost';
$config['username'] = 'IAmAUser';
$config['password'] = 'mypassword';
$config['database'] = 'theDB';
$config['dbdriver'] = 'mysqli';
$config['dbprefix'] = '';
$config['pconnect'] = TRUE;
...

在一些 Controller 中

$this->config->load('db2', TRUE);
$db2_config = $this->config->item('db2');
$this->load->database($db2_config);

关于php - Codeigniter 加载不同的数据库配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34029798/

相关文章:

php - 如何将 php 函数放入 javascript onclick 函数中?

php - 创建表之前检查 MySql 凭据

php - 使用 PHP 的动态 jQuery 弹出窗口

php - PHP 中的表单未在 <li> 下发布值

PHP 和 HTML 提交表单不起作用

php - 无法使用PHPExcel将Excel中的数据导入到phpMySql

mysql - 最终的 MySQL 查询接触

php - paypal数字商品不显示选项 "buy as a guest"

php - 如何获取表2中没有的值

php - 使用 AJAX 将表单数据存储在 PHP 变量中,以修改 MySQL 查询