100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > mysql 开启断线重连_[BUG反馈]MYSQL长连接中(SWOOLE) 使用事务提交开启断线重连接抛出异常...

mysql 开启断线重连_[BUG反馈]MYSQL长连接中(SWOOLE) 使用事务提交开启断线重连接抛出异常...

时间:2019-05-04 18:42:51

相关推荐

mysql 开启断线重连_[BUG反馈]MYSQL长连接中(SWOOLE) 使用事务提交开启断线重连接抛出异常...

官方源代码

vendor/topthink/think-orm/src/db/PDOConnection.php :1369行publicfunctionstartTrans():void

{

$this->initConnect(true);

++$this->transTimes;

try{

if(1==$this->transTimes){

$this->linkID->beginTransaction();

}elseif($this->transTimes>1&&$this->supportSavepoint()){

$this->linkID->exec(

$this->parseSavepoint('trans'.$this->transTimes)

);

}

$this->reConnectTimes=0;

}catch(\Exception$e){

if($this->reConnectTimesisBreak($e)){

--$this->transTimes;

++$this->reConnectTimes;

$this->close()->startTrans();

}

throw$e;

}

}修复建议: 在"throw $e;"上面加个else或 使用return阻止抛出异常publicfunctionstartTrans():void

{

$this->initConnect(true);

++$this->transTimes;

try{

if(1==$this->transTimes){

$this->linkID->beginTransaction();

}elseif($this->transTimes>1&&$this->supportSavepoint()){

$this->linkID->exec(

$this->parseSavepoint('trans'.$this->transTimes)

);

}

$this->reConnectTimes=0;

}catch(\Exception$e){

if($this->reConnectTimesisBreak($e)){

--$this->transTimes;

++$this->reConnectTimes;

$this->close()->startTrans();

}else{

throw$e;

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。