每个用户一个数据库(mysql)连接是否足够?

时间:2015-09-07 19:05:34

标签: php mysql database connection

我刚刚开始使用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。因此,在每个脚本(例如登录和注册脚本)中,我重用了相同的连接。鉴于此,我应该在每个脚本中打开一个新连接,还是重用同一个?

1 个答案:

答案 0 :(得分:0)

事实上,您每次都在使用新连接,因为PHP不会在请求之间共享您的静态变量,并且连接将在每个请求结束时关闭。

您可以在mysqli_* here中阅读有关持久连接的信息,并决定是否要使用它。