我試圖做一個持久連接的php + pdo網站。當然,連接每8小時不活動的關閉,所以我嘗試創建,如果它被關閉PHP/PDO - 服務器已經消失,異常
這裏說重新打開連接的PHP文件是我的代碼:
try{
$db = new PDO("mysql:host=$database_ip;dbname=$database_name", $database_username, $database_password, array(PDO::ATTR_PERSISTENT => true));
}catch(Exception $x){
try{
$db = new PDO("mysql:host=$database_ip;dbname=$database_name", $database_username, $database_password);
}catch(Exception $x){
echo 'Failed database error';
}
}
This說,「PDO :: __ construct()將始終拋出PDOException,如果連接失敗,無論當前設置了哪個PDO :: ATTR_ERRMODE。未捕獲的異常是致命的。
的問題是,即使異常被捕獲它仍然是致命的:/
這裏的錯誤:
警告:PDO :: __結構():MySQL服務器已消失在線/path/to/website/mysql.inc.php
這看起來是一個警告,不是一個錯誤。第一個連接正在消失,所以它會引發警告。第二次連接後連接仍然持續嗎? – Shawn
@shawn我怎麼能把它變成一個錯誤? – john01dav
默認情況下,PDO會引發警告。設置PDO :: ATTR_ERRMODE => PDO :: ERRMODE_EXCEPTION。我相信這會拋出異常。如果它對你有用,那麼這是一個正式的答案。 – Shawn