2013-03-12 121 views
2

相对较新的框架时,使用相同的数据库连接,MVC和OOP在一般... ...所以这里是一个基本的问题:笨,扩展机型

如果我有帐户模式是这样的:

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

然后,控制器调用车型,其无论从账户模式扩展:

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(); 
    } 
} 

我的问题是他们都会使用相同的连接?我正在计划这种方式来使用相同的连接,但现在我想,因为父母构造两次,它会使用两个单独的连接。也许我在想这个。也许我正在考虑这一点。 如果不是,单身是唯一的答案还是有其他方式? 谢谢

回答

0

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

在你的模型中有几种方法也是可以的。我通常使用与特定数据库表关联的一个模型(如果我使用与关系密切的表进行连接,则有时会多于一个)。

我认为你很好继续。

+0

谢谢,是的,我有其他方法,如get和set。我只是把这个查询放在构造函数中来简化这个例子。 – bdscorvette 2013-03-12 16:54:58