<small id='rBnY8'></small><noframes id='rBnY8'>

  • <legend id='rBnY8'><style id='rBnY8'><dir id='rBnY8'><q id='rBnY8'></q></dir></style></legend>
        <bdo id='rBnY8'></bdo><ul id='rBnY8'></ul>

      <i id='rBnY8'><tr id='rBnY8'><dt id='rBnY8'><q id='rBnY8'><span id='rBnY8'><b id='rBnY8'><form id='rBnY8'><ins id='rBnY8'></ins><ul id='rBnY8'></ul><sub id='rBnY8'></sub></form><legend id='rBnY8'></legend><bdo id='rBnY8'><pre id='rBnY8'><center id='rBnY8'></center></pre></bdo></b><th id='rBnY8'></th></span></q></dt></tr></i><div id='rBnY8'><tfoot id='rBnY8'></tfoot><dl id='rBnY8'><fieldset id='rBnY8'></fieldset></dl></div>
        <tfoot id='rBnY8'></tfoot>

        在 MySQL 服务器上重新连接已经消失

        时间:2023-09-21
          <bdo id='DlYzZ'></bdo><ul id='DlYzZ'></ul>
              <i id='DlYzZ'><tr id='DlYzZ'><dt id='DlYzZ'><q id='DlYzZ'><span id='DlYzZ'><b id='DlYzZ'><form id='DlYzZ'><ins id='DlYzZ'></ins><ul id='DlYzZ'></ul><sub id='DlYzZ'></sub></form><legend id='DlYzZ'></legend><bdo id='DlYzZ'><pre id='DlYzZ'><center id='DlYzZ'></center></pre></bdo></b><th id='DlYzZ'></th></span></q></dt></tr></i><div id='DlYzZ'><tfoot id='DlYzZ'></tfoot><dl id='DlYzZ'><fieldset id='DlYzZ'></fieldset></dl></div>

                <tbody id='DlYzZ'></tbody>

              <small id='DlYzZ'></small><noframes id='DlYzZ'>

              <legend id='DlYzZ'><style id='DlYzZ'><dir id='DlYzZ'><q id='DlYzZ'></q></dir></style></legend>

                  <tfoot id='DlYzZ'></tfoot>
                  本文介绍了在 MySQL 服务器上重新连接已经消失的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  如何修改此类以捕获 MySQL 服务器离开的异常并重新连接?

                  How can I modify this class to catch exception where MySQL Server Goes Away, and reconnect?

                  <?php
                  class DBConn
                  {
                  private $conn;
                  
                  public function __construct( $persistent = false )
                  {
                      try
                      {
                          $this->conn = new PDO( "mysql:host=localhost;dbname=test", 'test', "hoollaahaoo" );
                          $this->conn->exec( "SET CHARACTER SET utf8" );
                          $this->conn->setAttribute( PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC ); 
                          if ( $persistent )
                              $this->conn->setAttribute( PDO::ATTR_PERSISTENT, true );
                      }
                      catch( PDOException $e )
                      {
                          return $e->getMessage();
                      }
                  }
                  
                  public function getConn()
                  {
                      return $this->conn;
                  }
                  }
                  

                  推荐答案

                  你可能需要像这样创建自己的类

                  you probably will need to make your own class like this one

                  1. __construct
                  2. 中删除try/except
                  3. 然后像这样连接到你的数据库:

                  $conn = null;
                  $limit = 10;
                  $counter = 0;
                  while (true) {
                    try {
                      $conn = DBConn();
                      break;
                    }
                    catch (Exception $e) {
                      $conn = null;
                      $counter++;
                      if ($counter == $limit)
                        throw $e;
                    }
                  
                  }

                  编辑 1:

                  但是如果你说你的服务器消失了......那么可能是这样的

                  but if you say that your server goes away.... then may be smth like this

                  protected function _connect( $persistent = false ) {
                  $conn = null;
                  $limit = 10;
                  $counter = 0;
                  while (true) {
                    try {
                          $this->conn = new PDO( "mysql:host=localhost;dbname=test", 'test', "hoollaahaoo" );
                          $this->conn->exec( "SET CHARACTER SET utf8" );
                          $this->conn->setAttribute( PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC ); 
                          if ( $persistent )
                              $this->conn->setAttribute( PDO::ATTR_PERSISTENT, true );
                  }
                    catch (Exception $e) {
                      $conn = null;
                      $counter++;
                      if ($counter == $limit)
                        throw $e;
                    }
                  }
                  
                  public function __construct( $persistent = false )
                  {
                      $this->_connect($persistent);
                  }
                  

                  这篇关于在 MySQL 服务器上重新连接已经消失的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:E_STRICT 有什么作用? 下一篇:警告 feof() 期望参数 1 是资源

                  相关文章

                  最新文章

                  <tfoot id='Pymo4'></tfoot>

                • <small id='Pymo4'></small><noframes id='Pymo4'>

                    <bdo id='Pymo4'></bdo><ul id='Pymo4'></ul>
                • <legend id='Pymo4'><style id='Pymo4'><dir id='Pymo4'><q id='Pymo4'></q></dir></style></legend>
                    1. <i id='Pymo4'><tr id='Pymo4'><dt id='Pymo4'><q id='Pymo4'><span id='Pymo4'><b id='Pymo4'><form id='Pymo4'><ins id='Pymo4'></ins><ul id='Pymo4'></ul><sub id='Pymo4'></sub></form><legend id='Pymo4'></legend><bdo id='Pymo4'><pre id='Pymo4'><center id='Pymo4'></center></pre></bdo></b><th id='Pymo4'></th></span></q></dt></tr></i><div id='Pymo4'><tfoot id='Pymo4'></tfoot><dl id='Pymo4'><fieldset id='Pymo4'></fieldset></dl></div>