如果在事务期间失败则删除文件,如何恢复/回滚查询执行之前

时间:2014-06-18 19:19:02

标签: php mysql sql pdo transactions

如果在事务期间失败则删除文件,如何恢复/回滚查询执行之前?

我需要删除事务中的文件,是否可以知道unlink文件是否失败然后意味着删除文件失败然后回滚sql执行之前..

以及其他问题,如果执行查询失败后unlink()如何恢复文件删除?
比如make unlink()除了交易

try{
  $connect_db->beginTransaction();
  // execute select query
  // execute delete query
  // .. execute other query    

  if (is_file($file_path)) {
      if(unlink($file_path) == false) {
          // How to recover/rollback delete query and other query execute before

          $message = '';
          return $message;
          exit;
      }
  }

  //  ....execute other query
  $connect_db->commit();
} catch (PDOException $e) {
  $message = '';
}

return $message;

1 个答案:

答案 0 :(得分:0)

我认为这就是你要找的东西:

if( is_file($file_path) ) {
      if( ! unlink($file_path) ) { // or if(unlink($file_path) == false) {
          $connect_db->rollBack();

          $message = '';
          return $message;
          exit;
      }
  }

只要您的数据库支持交易。

您可能需要read the transaction documentation