2016-05-12 189 views
1

我需要檢查postgres數據庫是否可用。檢查DB是否可用

如果數據庫在線,我會得到時間戳。

如果數據庫處於脫機狀態,我得到一個laravel PDO異常

但每次我得到一個異常和腳本執行停止

try 
{ 
    $con = new PDO("pgsql:host=".$db->Host.";port=".$db->Port.";dbname=postgres", $db->Username, $db->Password, [PDO::ATTR_TIMEOUT => '5']); 

    $dt = new \DateTime(null, new \DateTimeZone('Europe/Berlin')); 

    return $dt->getTimestamp(); 
} 
catch(Exception $e) 
{ 
    return false;  
} 
catch(PDOException $e) 
{ 
    return false;  
} 
+0

'echo $ e-> getMessage()'會顯示錯誤文本。 –

+0

你的意思是你的try ... catch不工作嗎? – KiwiJuicer

+0

錯誤消息是,他們無法連接到服務器。 但我想得到一個錯誤的回來,現在我得到一個Laravel錯誤頁面 – Phil795

回答

1

嘗試在前面加上\盈方的異常:

try 
{ 
    $con = new PDO("pgsql:host=".$db->Host.";port=".$db->Port.";dbname=postgres", $db->Username, $db->Password, [PDO::ATTR_TIMEOUT => '5']); 

    $dt = new \DateTime(null, new \DateTimeZone('Europe/Berlin')); 

    return $dt->getTimestamp(); 
} 
catch(\Exception $e) 
{ 
    return false;  
} 
+0

感謝的人,這解決了它。 – Phil795

+0

它找不到您的命名空間中的異常 – KiwiJuicer

+0

我認爲PDOException是在像PDO – Phil795