2

一般来说,框架、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();
    }
}

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

4

1 回答 1

0

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

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

我认为你很适合继续下去。

于 2013-03-12T16:51:04.457 回答