PHP OCI:如何回滚任何打开的连接
我正在使用PHP的OCI库与Oracle通信。在每个函数中都有一个try…catch来捕获任何异常。在catch部分,我调用自己的错误处理函数 当发生异常时,我希望回滚到oracle的所有打开的连接,最好是在我的错误处理函数中。这可能吗 谢谢 # # 这有点老套,但以下是我解决问题的方法 在连接到Oracle的connect()函数中,我输入以下代码:PHP OCI:如何回滚任何打开的连接,php,oracle,oracle-call-interface,Php,Oracle,Oracle Call Interface,我正在使用PHP的OCI库与Oracle通信。在每个函数中都有一个try…catch来捕获任何异常。在catch部分,我调用自己的错误处理函数 当发生异常时,我希望回滚到oracle的所有打开的连接,最好是在我的错误处理函数中。这可能吗 谢谢 # # 这有点老套,但以下是我解决问题的方法 在连接到Oracle的connect()函数中,我输入以下代码: if(!isset($GLOBALS['OPEN_CONNECTIONS'])){ $GLOBALS['OPEN_CONNECTIONS']
if(!isset($GLOBALS['OPEN_CONNECTIONS'])){
$GLOBALS['OPEN_CONNECTIONS'] = array();
$GLOBALS['OPEN_CONNECTIONS'][] = $this;
}else{
$GLOBALS['OPEN_CONNECTIONS'][] = $this;
}
这将存储全局范围内所有打开连接的列表
在我的错误处理函数中,我执行以下操作:
//rollback all open connections
if(isset($GLOBALS['OPEN_CONNECTIONS'])){
foreach($GLOBALS['OPEN_CONNECTIONS'] as $con){
$con->rollback();
}
}
这样,我就可以回滚所有打开的连接,而不必将它们传递给我的错误处理程序。是的,只要您的错误处理函数可以访问所有连接对象。因此,无法获取所有打开的连接的列表并关闭它们?我必须将要关闭的确切连接传递到错误处理程序中?我有点希望避免这样做。