这是我的数据库类通过PDO持久连接MySQL的连接:为什么持久性PDO连接会与每个请求建立新连接?
class database{
private $_db;
public function conn()
{
$user = 'xxx';
$pass = 'xxxxxxx';
try
{
$this->_db = new PDO('mysql:dbname=x;host=x.x.x.x',$user,$pass,array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',PDO::ATTR_PERSISTENT => true));
$this->_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->_db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
return $this->_db;
}
catch(PDOException $e)
{
return "-1";
}
}
}
我调用这个类中的另一个函数来查询数据库。每次我调用函数时,都会在数据库中创建一个新的连接。为什么持续的pdo连接为每个请求创建一个新的连接?
如果你每次都做$ db = new database(); $ db-> conn();你将创建一个新对象,并且每次都定义一个新连接 – MacBooc
在创建一个新的'conn()'方法之前,'conn()'方法不检查私有'$ _db'是否为空连接到你的数据库。 – WillardSolutions