“MySQL服务器已经消失”后如何退出错误?

时间:2010-05-07 18:39:51

标签: php mysql

我有一个每分钟运行一次的cron作业。每隔一段时间,cron就会因错误而失败:

  

MySQL服务器已经消失

问题是执行此错误以下的所有查询,有时可能会产生不良结果。

那么如何检测错误已经发生并退出其余代码的执行?

或者任何关于如何解决错误的提示都会很棒。

2 个答案:

答案 0 :(得分:1)

错误似乎是由连接到没有响应的服务器引起的,或者是您正在使用超时的持久连接。

您应该能够从客户端API获取某种错误代码,并捕获以查看连接是否仍然有效。

如果失败,您可以抛出异常,然后停止该程序。

$query_id = mysqli_query($conn_id, $query);
if(!$query_id )
{
    // throw an exception
    throw new DatabaseQueryException("An error occurred accessing the database.\nError: \n".mysqli_error($conn_id));
}

我在网站上使用的是

答案 1 :(得分:0)

快速解决方法是关闭持久的mysql连接。更好的解决方法是捕获该特定错误并调用重新连接(PDO::__construct),直到获得具有实时连接的即时消息。我发现当服务器计算机进入睡眠状态或mysql连接超时为低时,我经常会收到此错误。