【问题标题】:Codeigniter, use same database connection when extending modelsCodeigniter,扩展模型时使用相同的数据库连接
【发布时间】:2013-03-12 16:43:22
【问题描述】:

对于框架、MVC 和 OOP 来说相对较新...所以这里有一个基本问题:

如果我有这样的帐户模型:

class Account_Model extends CI_Model
{
    public function __construct()
    {
        parent::__construct();
        $this->sybase = $this->load->database( 'sybase', TRUE );
    }
}

然后控制器调用 两个 模型,它们都从 Account 模型扩展:

class Account_List_Model extends Account_Model
{
    public function __construct()
    {
        parent::__construct();
        $sql = "SELECT ....";
        return $this->sybase->query( $sql )->result();
    }
}

class Account_Details_Model extends Account_Model
{
    public function __construct()
    {
        parent::__construct();
        $sql = "SELECT ....";
        return $this->sybase->query( $sql )->result();
    }
}

我的问题是他们都使用相同的连接吗?我计划以这种方式使用相同的连接,但现在我在想,因为父级被构造了两次,它将使用两个单独的连接。也许我在想这个。也许我在想这个。 如果不是,单例是唯一的答案还是有其他方法? 谢谢

【问题讨论】:

    标签: php oop codeigniter


    【解决方案1】:

    CodeIgniter 在您加载 Database 类时打开连接,因此只有一个连接在使用中(除非您连接到两个或多个数据库)。

    您的模型中也可以有多个方法。我通常使用与特定数据库表关联的一个模型(如果我对密切相关的表使用联接,有时会使用多个模型)。

    我认为你很好。

    【讨论】:

    • 谢谢,是的,我还有其他方法,例如 get 和 set。我只是将查询放在构造函数中以简化示例。
    猜你喜欢
    • 2012-12-14
    • 2015-09-13
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 2018-02-09
    • 2022-12-09
    • 1970-01-01
    相关资源
    最近更新 更多