<tfoot id='3HT2e'></tfoot>
    • <bdo id='3HT2e'></bdo><ul id='3HT2e'></ul>

    <small id='3HT2e'></small><noframes id='3HT2e'>

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

      1. 我如何 ping MySQL 数据库并使用 PDO 重新连接

        时间:2023-10-05

        • <tfoot id='KtVqu'></tfoot>

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

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

                <tbody id='KtVqu'></tbody>
              • <bdo id='KtVqu'></bdo><ul id='KtVqu'></ul>

                1. 本文介绍了我如何 ping MySQL 数据库并使用 PDO 重新连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我使用 MySQL PDO 来处理数据库查询等.但大多数时候,MySQL 连接消失了.所以我正在查看 PDO,它将检查数据库连接是否存在,如果它不退出,那么我需要连接数据库以继续查询执行.

                  I am using MySQL PDO for handling database querying and all. But most of the time, the MySQL connection is gone away. So i am looking in the PDO that will check if the db connection is exists or not and if it is not exit, then i need to connect the database to continue the query execution.

                  我是 MySQL pdo 的新手,我不知道如何处理这种情况.如果有人对此提出建议会更好.

                  I am new to the MySQL pdo and i do not know how to handling this situation. It would be better if anybody suggest on this.

                  推荐答案

                  我试图为同样的问题寻找解决方案,但我找到了下一个答案:

                  I tried to find a solution for the same problem and I found the next answer:

                  class NPDO {
                      private $pdo;
                      private $params;
                  
                      public function __construct() {
                          $this->params = func_get_args();
                          $this->init();
                      }
                  
                      public function __call($name, array $args) {
                          return call_user_func_array(array($this->pdo, $name), $args);
                      }
                  
                      // The ping() will try to reconnect once if connection lost.
                      public function ping() {
                          try {
                              $this->pdo->query('SELECT 1');
                          } catch (PDOException $e) {
                              $this->init();            // Don't catch exception here, so that re-connect fail will throw exception
                          }
                  
                          return true;
                      }
                  
                      private function init() {
                          $class = new ReflectionClass('PDO');
                          $this->pdo = $class->newInstanceArgs($this->params);
                      }
                  }
                  

                  完整故事在这里:https://terenceyim.wordpress.com/2009/01/09/adding-ping-function-to-pdo/


                  其他人想使用 PDO::ATTR_CONNECTION_STATUS,但他发现:$db->getAttribute(PDO::ATTR_CONNECTION_STATUS) 即使在停止 mysqld 之后,仍然继续回复Localhost via UNIX socket".


                  Somebody else was thinking to use PDO::ATTR_CONNECTION_STATUS, but he figured out that: "$db->getAttribute(PDO::ATTR_CONNECTION_STATUS) keeps replying "Localhost via UNIX socket" even after stopping mysqld".

                  这篇关于我如何 ping MySQL 数据库并使用 PDO 重新连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:PHP/MySQL 中的 PDO 和 UTF-8 特殊字符? 下一篇:使用 PDO_DBLIB 连接到 MS SQL 数据库的 PHP 错误

                  相关文章

                  最新文章

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

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

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