這是我的數據庫類通過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