【问题标题】:Connection lost to MySQL Server during query查询期间与 MySQL 服务器的连接丢失
【发布时间】:2016-02-13 10:42:04
【问题描述】:

我在mysql中遇到了一个问题: 我的 PHP 与 MySQL 断开连接以进行简单查询。错误是:

查询期间与 MySQL 服务器的连接丢失。

它是从:

  $stmt->execute();

这是我的 PHP 代码:

$app->post('/checkmd5', function() use($app) {
    $data = $app->request()->params();
    $version = $data["VERSION"];
    $md5 = $data["MD5"];

    $stmt = getDb()->prepare("SELECT MD5 FROM UpdateInfo WHERE VersionName = ?");
    $stmt->bind_param("s", $version);
    $stmt->execute();
    $stmt->store_result();
    if ($stmt->num_rows() > 0) {
        $stmt->bind_result($dbMD5);
        $stmt->fetch();
        if ($md5 == $dbMD5)
        {
            $app->render(200, array("SUCCESS_MD5_MATCH", "VALID" => "true"));
        }
        else
        {
            $app->render(400, array("msg" => "ERROR_NO_MD5_MATCH", "VALID" => "false"));
        }
    }
    else
    {

        $app->render(400, array("msg" => "ERROR_VERSION_STRING_NOT_FOUND", "VALID" => "false", "VERSION" => $version));
    }
});

在 PHPMyAdmin 中有效:

这就是 PHP 给出的:

【问题讨论】:

  • 发生这种情况的原因可能有多种。错误的firewal配置,有效地阻止了你,你耗尽了连接,错误的my.cnf配置,......
  • 查看右侧的所有链接问题。
  • Mysql 有效,只有这个查询无效。有点奇怪。 MySQL 服务器也是 localhost

标签: php mysql


【解决方案1】:

只需将 getDb() 的返回值保存到变量即可解决问题

【讨论】:

  • 那么,一旦对数据库连接的每个引用都消失了,连接就被隐式关闭了?并且准备好的语句没有任何对连接的引用?
  • @hanshenrik 我认为它的 phps 垃圾收集器只是关闭了连接。
猜你喜欢
  • 2012-11-15
  • 2015-09-22
  • 2015-11-22
  • 1970-01-01
  • 2020-07-11
  • 2020-12-05
  • 1970-01-01
  • 2015-06-27
  • 1970-01-01
相关资源
最近更新 更多