【问题标题】:PDO over network, hangs MySql Database after running 1 to 3 hours?网络上的 PDO,运行 1 到 3 小时后挂起 MySql 数据库?
【发布时间】:2014-12-04 05:57:20
【问题描述】:

我有以下课程

--------------------------------------------- CRUD Code Snippet--------------------
class CRUD{
    function __construct(){
    $this->db_user = "user_name";
    $this->db_pass = "user_password";
    $this->db_name = "myDb";
    $this->host = "localhost";
    }       


//connect() function to connect to database
private function connect(){
    try{
        $pdo_Options = array(PDO::ATTR_PERSISTENT => true, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
        $this->con = new PDO("mysql:host={$this->host};dbname={$this->db_name};charset=utf8", $this->db_user, $this->db_pass, $pdo_Options);             
    }catch(PDOException $ex){
        return $ex->getMessage();
        $this->tempVar = $ex->getMessage();
        }
    }


       ----------- The following method creates problems when updating record --------------
       public function dbQuery($sql,$bindVars=array()){
        try{
            $this->connect();
            $statement = $this->con->prepare($sql);
            $statement->execute($bindVars);
            if($statement->rowCount() > 0){
                return true;
                }
            else{
                return false;
                }
                $this->con = null;
            }catch(PDOException $exc){
                $this->tempVar = $exc->getMessage();
                $this->sqlToReturn = $sql;
                return false;
                }
        }

   }//CRUD
-------------------------------------------------------------------

该函数运行得非常好,它完美地执行了它的工作,但在执行一定时间后 MySql 数据库挂起并停止响应。上述函数dbQuery()调用的页面代码,耗时120秒后显示错误。在我的场景中,该软件运行在一个巨大的网络上,并且有 apx: 300 个并发用户,他们正在插入、更新、搜索和删除数据库中的记录。具有 apx 的数据库:300000 条记录。 我已经在 Windows 8.1 64 位上安装了 WAMP 服务器。 MySql 版本是:5.6.20,在 T110-II Power Edge Xeon 服务器机器上。

我没有找到/诊断为什么会出现这个问题?

请指导我,因为我真的很担心这个问题。

【问题讨论】:

  • 提供错误信息以便更好地理解您的问题
  • 打开一个页面需要几分钟。它也失败了,有时它会显示上述错误,或者经常显示 最大时间限制达到 120 ...
  • 您在mysql查询中遇到的问题,请提供或自行检查。看看thisthis one(Why this interruption will happen?)
  • $bindUpdat = array(':sno'=>$caseId); if($db->dbQuery("Update chronologicallists set isOut = 1 where caseSno = :sno AND isDecided = 1 AND isCurrent = 1",$bindUpdat)){ }

标签: php jquery mysql networking pdo


【解决方案1】:

这可能会对您有所帮助:

ini_set('max_execution_time', 10000);

【讨论】:

  • 我认为对 OP 的解释会很好!
  • 亲爱的 Sandesh jadhav,运行此查询/页面所需的执行时间仅为 0.1 秒。我已经超过了 3 分钟,但是当服务器变慢时出现错误?
  • @Rizier123 该软件在第一次运行良好且非常快,直到 1 到 2 小时,但同时它变慢并且无法执行,然后抛出错误。
猜你喜欢
  • 2015-08-13
  • 2022-07-21
  • 1970-01-01
  • 2015-07-23
  • 2014-12-31
  • 2016-07-28
  • 1970-01-01
  • 1970-01-01
  • 2021-08-31
相关资源
最近更新 更多