簡體   English   中英

檢測PDO mysql連接是否已建立的方法PHP

[英]Method to detect if a PDO mysql connection is already established PHP

我有三個不同的類,我在某個php頁面上使用這些類來從數據庫中提取一些數據。 每個類都使用PDO進行自己的連接過程。 如何使用pdo檢查是否已建立與mysql的連接? 我的連接代碼如下:

try
{
    $DB_con = new PDO("mysql:host={$db_host};dbname={$db_name}",$db_user,$db_pass);
    $DB_con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $DB_con->exec("SET CHARACTER SET utf8"); 
}
catch(PDOException $exception)
{
    echo $exception->getMessage();
}

解決方案是在每個類中創建一個公共$ DB屬性,然后在單個頁面上實例化每個類時,將之前的類DB參數傳遞給它,如下所示:

class a {

    public $db = null

    public function setDB($db = null){
        if (is_null($db)){
            try
            {
                $DB_con = new PDO("mysql:host={$db_host};dbname={$db_name}",$db_user,$db_pass);
                $DB_con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                $DB_con->exec("SET CHARACTER SET utf8"); 
$this->db = $DB_con;
            }
            catch(PDOException $exception)
            {
                echo $exception->getMessage();
            }       
        } else {
            $this->db = $db;
        }
    }
}

b和c類將與a類相同

然后在您加載的頁面上:

$a = new a;
$b = new b;
$b->setDB($a->db);
$c = new c;
$c->setDB($a->db);

然后,您可以調用3個類,但只有1個數據庫連接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM