2016-05-12 150 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