警告:PDO :: __ construct()[pdo .-- construct]:MySQL服务器已经消失,即使是持久连接也是如此

时间:2012-08-09 09:08:21

标签: mysql pdo connection warnings persistent

我在我的应用程序中使用PDO来处理MySQL。我已将其连接设置为持久性。但是,当我在我的IDE和浏览器之间切换以测试项目时,有时我会收到以下错误:

  

警告:PDO :: __ construct()[pdo .-- construct]:MySQL服务器已经消失了

这对我来说很奇怪,因为:

  1. 有时在成功加载网页后发生(没有错误)。所以我可以确保在之前的几分钟内有连接。
  2. 我使用持久连接,我希望我不会失去与数据库的连接。
  3. 请帮帮我。

1 个答案:

答案 0 :(得分:0)

根据this comment on a reported bug,mysqlnd正在内部捕获故障,将其报告为警告,然后重新建立连接。

(暂时)禁止报告此警告的唯一方法是:

  1. 使用@运算符或
  2. 防止在构造函数执行期间报告警告:
    $oldErrorReporting = error_reporting();
    error_reporting($oldErrorReporting & ~E_WARNING);
    // construct PDO instance here
    error_reporting($oldErrorReporting);