假设我的服务器PHP端点遵循以下内容:
如果服务器在执行SQL命令(2或4)或在3期间崩溃时,该怎么办?
这仅仅是我需要进行防御性编码的一种情况,确保我知道在关键代码区域发生崩溃的每一个可能结果的后果,即执行某种崩溃分析以确定最坏的结果,并确保我的工作流程能够处理每一种情况。
又或者我是否可以用其他机制来协助处理这类个案?
发布于 2018-06-05 21:52:38
考虑到评论中的暗示,我能够辨别正确的行动方向。从MyISAM SQL数据库引擎切换到InnoDB数据库引擎,我可以使用事务来安全地防止在数据库中引入错误:
START TRANSACTION
INSERT, UPDATE, ETC...
COMMIT在到达commit命令之前,InnoDB引擎不会进行任何更改,因此,如果在该行之前发生任何错误,那么数据库不会受到影响。
此外,根据对交易的出色的W3Resources介绍,
MySQL (在这里我们维护版本5.6)支持本地事务(在给定的客户端会话中)
因此,似乎单个PHP连接支持事务模型,如果必要的话,可以在SQL查询之间执行间歇性PHP处理,实际上,我昨晚证实了这一点。
https://softwareengineering.stackexchange.com/questions/372131
复制相似问题