Maison >cadre php >Workerman >Que faire si Workman introduit une erreur de base de données

Que faire si Workman introduit une erreur de base de données

尚
original
2019-12-23 10:47:372621parcourir

Que faire si Workman introduit une erreur de base de données

Afin d'obtenir une vitesse d'accès au serveur plus efficace, nous utiliserons de longues connexions de mysql ou d'autres bases de données pour améliorer la vitesse d'accès

Le contenu suivant utilise mysql pdo comme. un exemple :

Problème :

Lorsque le cli réside en mémoire, de nombreuses situations entraîneront l'échec de la connexion créée ;

Solution :

Lors de l'accès à la base de données Lors de l'ajout de try catch capture

Lorsque l'erreur capturée est 2006 ou 2013, cela signifie que la connexion a échoué à ce moment pour assurer le fonctionnement normal du programme ;

// 在和数据库交互的地方加上try catchpublic function Init($query)
    {
        try{
            // todo 这里是操作数据库的逻辑
        }catch (\Exception $e) {
            if ( $e->errorInfo[1] === 2006 || $e->errorInfo[1] === 2013 ) {
                // todo 下面填写 或者调用连接数据库的代码
                $dsn = 'mysql:dbname=' . $this->settings["dbname"] . ';host=' . $this->settings["host"] . '';
                $this->pdo = new \PDO($dsn, $this->settings["user"], $this->settings["password"], array(\PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8;"));

                $this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);

                $this->pdo->setAttribute(\PDO::ATTR_EMULATE_PREPARES, true);
                return true;
            }
        }
    }

var_dump($e-> ;errorInfo); La valeur de

array(3) {
  [0]=>
  string(5) "HY000"
  [1]=>
  int(2006)
  [2]=>
  string(26) "MySQL server has gone away"}

Pour plus de connaissances sur Workerman, veuillez prêter attention à la colonne workerman tutoriel sur PHP chinois site web.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn