【问题标题】:Issue connecting second database in Codeigniter在 Codeigniter 中连接第二个数据库的问题
【发布时间】:2013-07-09 08:44:42
【问题描述】:

我必须在一个控制器中使用两个数据库。即使我使用第二个参数 TRUE 加载第二个数据库以获取引用而不覆盖默认数据库,它正在替换默认数据库。知道加载第二个数据库时应该做什么。目前我正在加载如下。

$testDB = $this->load->database('preview',TRUE,FALSE);

【问题讨论】:

  • 你在上面或下面做其他事情吗?

标签: php mysql database codeigniter


【解决方案1】:

将两个数据库的 pconnect 参数设置为 false

$db['preview']['pconnect'] = FALSE;

在您的 config/database.php 中

然后在连接到第二个数据库的模型上,像这样加载它:

class Example_m extends CI_Model {

   function __construct(){
        $CI =& get_instance();
        parent::__construct();
        $this->db = $CI->load->database('preview',TRUE);
    }

【讨论】:

    【解决方案2】:

    //这肯定会起作用或检查您的错误

    //If you use group
    
    //group name
    $preview_DB = $this->load->database('preview',TRUE);
    
    //another DB
    
    $another_DB = $this->load->database('another',TRUE);
    
    //if You use array
    
    //create connection string
    $db = array();
    $db['hostname'] = "database_hostname";
    $db['username'] = "database_username";
    $db['password'] = "database_password";
    $db['database'] = "database_name";
    $db['dbdriver'] = 'mysql';
    $db['pconnect'] = FALSE;
    
    
    $DB = $this->load->database($db,TRUE);
    

    【讨论】:

      【解决方案3】:

      我假设您已经在 database.php 中进行了所需的配置

      您可以像这样加载您的第二个数据库:

      $testDB = $this->load->database('preview', TRUE);

      并像这样使用它:

      $query = $testDB->query("SELECT * FROM TABLE");

      【讨论】:

      • 感谢您的回答。但我也尝试过这种方式,它也替换了默认数据库。
      猜你喜欢
      • 1970-01-01
      • 2013-01-18
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 2015-04-04
      • 2021-12-27
      • 2013-02-27
      • 2016-05-15
      相关资源
      最近更新 更多