Php 检查数据库是否可用
我需要检查postgres数据库是否可用 如果数据库在线,我会得到时间戳 如果数据库离线,我会得到一个laravel PDO异常 但每次我遇到异常,脚本执行就会停止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']);
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异常,请尝试仅添加该异常。