在使用php的PDO扩展时发现了一个问题。事务启动后,如果php与mysql的连接断开,php会直接记录一个warning异常。没有直接抛出Exception,流程如下:/***在用户属性改变的场景下*/try{//1.启动事务/***2.改变用户的属性并添加一条记录ofpropertychanges*///3.提交事务}catch(\Exception$e){//4.回滚事务//5.记录错误日志//6.抛出异常}//7.发布用户属性变化的广播以上操作可以简单分为五类。以我之前的了解,操作事务的大致流程如上。如果没有异常抛出,则交易提交成功。但是直到有一天数据库出现异常,开启了一个事务,处理上面1-2的过程,如果数据库直接挂了,那么在步骤3提交事务的时候会直接出现warning级别的错误,"SQLSTATE[HY000]:Generalerror:2006MySQLserverhasgoneaway",没有异常被捕获,所以在后面的第7步中,其他业务方拿到了未提交的streamid并进行了统计,但实际上用户的财产没有增加。结果,在问题百思不得其解的时候,翻到文档,发现了一个遗留很久的bug:https://bugs.php.net/bug.php?...后来,我们通过了临时事务位置配置set_error_handler解决问题
