보다 효율적인 서버 액세스 속도를 달성하기 위해 mysql 또는 기타 데이터베이스의 긴 연결을 사용하여 액세스 속도를 향상시킬 것입니다.
The 예를 들어 다음 내용은 mysql pdo로 시작합니다.
문제:
cli가 메모리에 상주하면 생성된 연결이 실패하는 상황이 많이 발생합니다. #🎜 🎜#
해결 방법: 데이터베이스에 액세스할 때 try catch 추가 캡처된 오류가 2006 또는 2013인 경우 연결이 실패했음을 의미합니다. 시간이 지나면 데이터베이스에 다시 연결하여 프로그램이 정상적으로 작동하는지 확인하세요.// 在和数据库交互的地方加上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); value
array(3) { [0]=> string(5) "HY000" [1]=> int(2006) [2]=> string(26) "MySQL server has gone away"}더 많은 작업자 지식을 확인하세요. PHP 중국어 웹사이트
workerman tutorial#🎜 🎜#column.
위 내용은 작업자가 db 오류를 발생시키는 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!