对框架、MVC和OOP都比较陌生…这是一个基本问题:
如果我有这样的Account模型:
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();
}
}
我的问题是他们会使用相同的连接吗?我计划以这种方式使用相同的连接,但现在我认为,因为父被构造两次,它将使用两个单独的连接。也许我想太多了。也许我想得太少了。如果不是,单例是唯一的答案还是有其他方法?由于
CodeIgniter在加载Database类时打开连接,因此只有一个连接在使用中(除非您连接到两个或更多数据库)。
在你的模型中有几个方法也是可以的。我通常使用与特定数据库表相关联的一个模型(如果我对密切相关的表使用连接,有时会使用多个模型)。
我认为你很适合继续下去。