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!