检查DB是否可用

时间:2016-05-12 07:03:28

标签: php postgresql laravel

我需要检查postgres数据库是否可用。

如果数据库在线,我会得到时间戳。

如果db处于脱机状态,我会得到一个laravel PDO Exception

但每次我得到一个Exception并且脚本执行停止

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;       
}

1 个答案:

答案 0 :(得分: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;       
}