首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dbforge的Codeigniter 3多个数据库连接

使用dbforge的Codeigniter 3多个数据库连接
EN

Stack Overflow用户
提问于 2015-11-03 06:22:09
回答 1查看 2.5K关注 0票数 2

我正在建立一个与CI 3网络应用程序,我必须使用两个不同的数据库连接,以满足一定的要求。我已经将配置加载到database.php文件中,当然,我可以使用内置类连接到它们。

代码语言:javascript
复制
$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'

);

我正在使用来自这里的一个这里。因此,我将其扩展如下..

代码语言:javascript
复制
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文档没有给出将不同的db连接加载到dbForge的方法。有人知道如何以优雅的方式处理这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-03 07:45:53

经过一点研究,我找到了正确的方法。

$this->load->dbForge()实际上可以接受一个参数,如果我们传递一个数据库对象,它将使用该连接来执行操作。

此外,我们还可以传递第二个参数并获得一个单独的对象。

代码语言:javascript
复制
$this->dbForgeSecondary = $this->load->dbforge($this->_database, TRUE);

简单而又很酷。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33492627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档