Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查数据库是否可用_Php_Postgresql_Laravel - Fatal编程技术网

Php 检查数据库是否可用

Php 检查数据库是否可用,php,postgresql,laravel,Php,Postgresql,Laravel,我需要检查postgres数据库是否可用 如果数据库在线,我会得到时间戳 如果数据库离线,我会得到一个laravel PDO异常 但每次我遇到异常,脚本执行就会停止 try { $con = new PDO("pgsql:host=".$db->Host.";port=".$db->Port.";dbname=postgres", $db->Username, $db->Password, [PDO::ATTR_TIMEOUT => '5']);

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

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

如果数据库离线,我会得到一个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;       
}

尝试在异常之前添加
\

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

echo$e->getMessage()
将向您显示错误文本。您的意思是您的try…catch无效吗?错误消息是,他们无法连接到服务器。但是我想得到一个假回传,现在我得到一个Laravel错误页面它在你的命名空间中找不到异常我认为PDOException在同一个命名空间中,就像PDO一样我不确定PDOException在哪里,但是你先检查了泛型异常,所以它无论如何都不会进入那里。但是,如果仍然捕获到PDO异常,请尝试仅添加该异常。