我什么时候应该关闭singleton类的sql连接

时间:2014-03-08 13:35:18

标签: php mysql database-connection

我使用单例数据库连接类连接到PHP项目中的MySql数据库。

// the singleton method
public static function getDatabaseConnection()
{
    if (self::$databaseConnection == null)
    {
        self::$databaseConnection = new DatabaseConnection();
        self::$databaseConnection->connect();
    }
    return self::$databaseConnection;
}

private function connect()
{
    $this->connection = new mysqli($this->hostName, $this->username, $this->password, $this->databaseName) 
            or die (mysqli_connect_error());
}

// When should I call this method?!
public function close_connection() {
    if (isset($this->connection)) {
        $this->connection->close();
    }
}

初始化单例对象时,它将连接到数据库。

我只是不知道何时应关闭此连接?保存到不关闭吗?

任何额外的小费都会非常感激,谢谢。

1 个答案:

答案 0 :(得分:0)

我倾向于在单身人士的生命周期内保留与数据库的永久连接。

将其保留至mysqli以管理连接生命周期 - MySql它是relatively cheap以获取与数据库的新连接,或者您可以使用持久连接(连接池)prefixing the hostname with p:

理由:

  • 如果您没有一直在主动使用连接 单身,你的应用程序的另一个组件可能需要连接和 更好地利用它。

  • 此外,通过在不再需要时立即释放连接, 你会更快地接收错误,例如你有未提交的地方 事务。

  • 最后,如果与数据库的连接被删除,那么你的 单身人士无论如何都需要重新连接。

TL; DR - 尽可能快地连接,使用和断开您的单身人士,就像任何其他消费者一样。