zoukankan      html  css  js  c++  java
  • gatewayworker中使用tcp协议连接硬件设备获取数据报错解决办法!

    运行后过段时间报错,

     Warning: Error while sending STMT_PREPARE packet. PID=1776 in D:phpStudyWWWap
    imysql-mastersrcConnection.php on line 1739

    其内容在mysql类里面,

    /**
    * 关闭连接
    */
    public function closeConnection()
    {echo 88888;
    $this->pdo = null;
    }

    加入打印8888后,打印错误为:


     Warning: PDO::prepare(): MySQL server has gone away in E:workxueshengkaapimy
     sql-mastersrcConnection.php on line 1747

    网上的解决办法:

    由于我等待消息队列是一个长连接,而我在等待回调前有个数据库连接,数据库的wait_timeout=28800,所以只要下一条消息离上一条消息超过8小时,就会出现这个错误,我把wait_timeout设置成10,并且捕获异常,发现真实的报错是 MySQL server has gone away ,
    所以只要在把等待回调前那次数据库连接主动close掉就可以解决问题

    只说出了原因,并为解决错误,所以本人亲自试验,在执行完sql后关闭mysql连接,然后重新实例化sql类,执行新的连接数据库操作,结果。。。。。。并没有   卵用

    最后弄了一天较劲脑汁,终于找到了解决办法那就是!!!!在Connection连接数据库类里面将报错行,$this->sQuery = @$this->pdo->prepare($query);

    前面加上@,强行隐藏报错信息,问题得到了完美解决,开心一笑


  • 相关阅读:
    Android sendToTarget
    OSI七层模型具体解释
    JAVA中字符串比較equals()和equalsIgnoreCase()的差别
    [Angular 2] ng-class and Encapsulated Component Styles
    [Angular 2] Passing data to components with @Input
    [Angular 2] Template property syntax
    [Angular 2] Adding a data model
    [Angular 2] Using ng-model for two-way binding
    [Angular 2] ngFor
    [Angular 2] Inject Service
  • 原文地址:https://www.cnblogs.com/yszr/p/8821754.html
Copyright © 2011-2022 走看看