Codeigniter,在扩展模型时使用相同的数据库连接

时间:2013-03-12 16:43:23

标签: php oop codeigniter

相对较新的框架,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();
    }
}

我的问题是他们都会使用相同的连接吗?我这样计划使用相同的连接,但现在我在想,因为父进程被构造两次,它将使用两个单独的连接。也许我过分思考这一点。也许我在想这个。 如果不是,单身人士是唯一的答案还是其他方式? 感谢

1 个答案:

答案 0 :(得分:0)

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

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

我认为你很好继续。