2

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

警告:PDO::__construct() [pdo.--construct]: MySQL server has gone away in

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

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

请帮我。

4

1 回答 1

0

根据对报告的错误的评论, mysqlnd 正在内部捕获故障,将其报告为警告,然后重新建立连接。

(目前)禁止报告此警告的唯一方法是:

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