我重新提出这个问题,因为它没有得到回应。
我正在尝试找出正确的处理数据库事务的方法。我看到的所有关于如何执行事务的内容都非常基础,大致如下:
- 运行 "begin" 命令开始事务
- 运行你的查询。
- 如果一切正常运行,则提交事务。
我明白了,但是我不知道如何处理错误(死锁)。我听说有两个选择:
- 向用户显示错误并说“请再试一次”
- 立即重试,直到成功为止。
对我来说,因为技术问题告诉用户再试一次似乎不好——真正的应用程序经常这样做吗?这是我有时看到的“哎呀,出了点问题”的异常错误吗?因为这是一个网站,所以用户甚至不应该知道数据库的存在。
所以我有几个问题:
- 在涉及多个用户的数据中,我应该采取哪种失败处理方法?
- 如果我选择“立即重试”选项,这对于复杂的PHP脚本意味着什么?从头重新启动整个请求?我担心这会引起更多的问题。
- 还有第三个选择吗?