事务回滚后要做什么

时间:2013-07-17 19:05:58

标签: php mysql transactions usability rollback

我需要一些建议。

启动交易后出现回滚时,最好的做法是什么?

  • 执行网站的其余部分
  • 杀死整个网站,并显示错误消息。

谢谢!

2 个答案:

答案 0 :(得分:0)

这实际上取决于你想做什么。

然而:

  • 您不希望只是在用户面前放置原始错误消息,它应该是有意义的。
  • 有意义的消息应该与页面的其余部分具有相同的外观和感觉,而不仅仅是带有黑色书写的白页。
  • 它应该包含某种导航,因此用户可以从错误中恢复。
  • 如果是表格,用户可能会重新尝试,那么尽可能多的数据应该仍然是不会重复工作的形式。

答案 1 :(得分:0)

这实际上取决于发出MySQL ROLLBACK语句的原因。应用程序有理由发布它,因此应用程序应该具有该条件集的代码路径。

通常,当某些条件无法继续前进时,会调用ROLLBACK。所以,这通常是作为中止完成的。 “杀完整个网站”听起来有点激烈。如果此交易是某些用户交互的结果,那么礼貌的做法就是向用户显示“您的请求遇到问题,请稍后再试”。 (没有理由向用户提供堆栈跟踪。)

应用程序应将错误条件的详细信息记录到日志中,包括用户的身份和某种事务ID,堆栈跟踪以及任何其他相关信息,以供分析。