我正在寻求实现一个多数据库Web系统。我一直试图找出构建扩展基本模型的模型的最佳方法,并将其作为数据库连接。
让我们说这个讨论我想要检索名为“users”的表中的所有记录,并且我在会话数据中有一个数据库标识符。
我想到我的模型有某种结构,比如;
/Table
/Account
/User.php
/Base.php
/Base.php
Table文件夹中的我的base.php将具有我的标准CRUD功能,我在考虑根据模型名称执行操作?
我的表/帐户/ Users.php模型将扩展表/帐户/ Base.php模型,该模型可以实现数据库连接。
我希望能做的事情是这样的;
$users = $this->load->model('/Table/Account/User');
$users->get(...);
但我想我需要通过Account / Base.php的数据库标识符来了解要连接的数据库?
我可能会用这个完全错误的方向,所以我会听到关于如何执行此操作的意见:)
答案 0 :(得分:0)
您不必像使用两个不同的数据库连接那样使整个模型逻辑复杂化。 Codeigniter documentation有一个很直接的例子。
如果您使用的是CI版本2,则可以按照以下简单规则使用多个数据库连接:
$DB1 = $this->load->database('group_one', TRUE);
$DB2 = $this->load->database('group_two', TRUE);
注意:更改单词" group_one"和" group_two"具体而言 您要连接的组名(或者您可以传递连接 值如上所示)。请参阅codeigniter的official documentation of the database configuration。
通过将第二个参数设置为TRUE(布尔值),该函数将返回数据库对象。
以这种方式连接时,您将使用对象名称来发出命令,而不是本指南中使用的语法。换句话说,而不是发出命令:
$this->db->query();
$this->db->result();
etc...
您将使用:
$DB1->query();
$DB1->result();
etc...
您可以在模型构造函数中加载所需的数据库连接对象,以便在那里选择所需的内容。