簡體   English   中英

Codeigniter 3 與 dbforge 的多個數據庫連接

[英]Codeigniter 3 multiple database connections with dbforge

我正在使用 CI 3 構建一個 Web 應用程序,我必須使用 2 個不同的數據庫連接來滿足某些要求。 我已將配置加載到 database.php 文件,當然我可以使用內置類連接到它們。

$db['default'] = array(
    'dsn' => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => 'root',
    'database' => 'primary',
    'dbdriver' => 'mysqli'
);

$db['customer'] = array(
    'dsn' => '',
    'hostname' => 'localhost',
    'username' => 'root_1',
    'password' => 'root_1',
    'database' => 'secondary',
    'dbdriver' => 'mysqli'

);

我正在使用這里的 MY_Model 。 所以我將它們擴展如下..

class Table extends MY_Model
{


    public function __construct()
    {

        parent::__construct();

        $this->_database = $this->load->database('customer', TRUE);
    }

    public function create_table()
    {
    return $this->_database->query("CREATE TABLE MyGuests (
                      id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
                      firstname VARCHAR(30) NOT NULL,
                      lastname VARCHAR(30) NOT NULL,
                      email VARCHAR(50),
                      reg_date TIMESTAMP
                    )");

    }

}

但我需要使用 dbForge 來創建表。 但是只有“默認”連接與 dbForge 類一起使用。 Codeigniter dbForge 文檔沒有提供將不同數據庫連接加載到 dbForge 的方法。 任何人都知道如何以優雅的方式解決這個問題?

經過一點研究,我找到了正確的方法。

$this->load->dbForge()實際上可以帶一個參數,如果我們傳遞一個數據庫對象,它將使用該連接來執行操作。

此外,我們還可以傳遞第二個參數並獲得一個單獨的對象。

$this->dbForgeSecondary = $this->load->dbforge($this->_database, TRUE);

簡單而酷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM