我刚刚开始使用PHP和MySQL构建Web应用程序。
我的问题是我是否应该在每个脚本中打开和关闭新的数据库连接,或者是否应该重用在包含文件中设置的静态连接。
我有一个文件database.inc.php
,它定义了一个带有连接和错误报告功能的类Database
。我使用以下变量:
private static $db_host = 'localhost';
private static $db_name = 'dbname';
private static $db_user = 'user'
private static $db_pass = 'password' //placeholder
public static $conn;
具有以下连接功能
public static function connect()
{
if(!self::$conn){
self::$conn = new mysqli(self::$db_host, self::$db_user, self::$db_pass, self::$db_name);
if(!self::$conn){
self::error(self::$conn);
return false;
}
else{
return true;
}
}
else{
return true;
}
}
在文件的底部,我创建了一个数据库连接:
//instantiate class
$database = new Database;
//establish connection
$database::connect();
//return connection
$mysqli = $database::$conn;
在我的每个文件中,我都包含database.inc.php
。因此,在每个脚本(例如登录和注册脚本)中,我重用了相同的连接。鉴于此,我应该在每个脚本中打开一个新连接,还是重用同一个?
答案 0 :(得分:0)
事实上,您每次都在使用新连接,因为PHP
不会在请求之间共享您的静态变量,并且连接将在每个请求结束时关闭。
您可以在mysqli_*
here中阅读有关持久连接的信息,并决定是否要使用它。