我使用单例数据库连接类连接到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();
}
}
初始化单例对象时,它将连接到数据库。
我只是不知道何时应关闭此连接?保存到不关闭吗?
任何额外的小费都会非常感激,谢谢。
答案 0 :(得分:0)
我倾向于不在单身人士的生命周期内保留与数据库的永久连接。
将其保留至mysqli
以管理连接生命周期 - MySql
它是relatively cheap以获取与数据库的新连接,或者您可以使用持久连接(连接池)prefixing the hostname with p:
理由:
如果您没有一直在主动使用连接 单身,你的应用程序的另一个组件可能需要连接和 更好地利用它。
此外,通过在不再需要时立即释放连接, 你会更快地接收错误,例如你有未提交的地方 事务。
最后,如果与数据库的连接被删除,那么你的 单身人士无论如何都需要重新连接。
TL; DR - 尽可能快地连接,使用和断开您的单身人士,就像任何其他消费者一样。