多个数据库连接(不需要的)

时间:2014-09-28 03:11:44

标签: php mysql pdo

我试图更好地掌握OOP。

我在所有类文件中使用这个__construct方法 这是正常运作,正如预期的那样

private $conn; // database connection

// make database connection if not exist!
function __construct() {
    // autoload class files
    require_once('class/autoloader.php'); 
    spl_autoload_register('myAutoloader');

    // open db connection so it is available to all files
    $db = new dbconn();
    $this->conn = $db->get_connection();        
}

但是,我有多个类文件都相互引用,所以当数据库连接被加载到所有类文件中这意味着我打开了太多的连接。 我需要关闭连接的每个实例吗? (如果是这样,这很棘手,因为我不知道可能已经启动了哪些类文件。)

我很感激任何建议!

2 个答案:

答案 0 :(得分:1)

如果出现任何问题,上面的代码没有提供足够的上下文来回答。

要记住一些事情。

只要您创建此类的新实例,就会调用__construct函数。如果您只创建此类的一个实例并与您正在使用的任何其他类共享该实例,那么您将没事。

// Use DI to pass in the database connection.
function __construct($dbConn) {
    $this->conn = $dbConn;        
}

答案 1 :(得分:0)

@Ford你可以做的另一件事是创建一个在调用时连接到数据库的函数。这样,即使您不使用数据库连接,也不会激活数据库连接。它将允许您的脚本运行得更快,因为您只在需要时调用资源。

您还可以拥有一个关闭连接功能,只要您完成执行查询并且不再需要数据库连接,就可以调用它。