且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2023-01-22 14:26:32

您可能需要制作自己的此类课程

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);
}