我无法找到答案,这很可能是因为它有一个我不知道的名字。 Anywho。
如果您对数据库有多个操作,例如:
if(insert_something_to_db($data) == TRUE){
if(delete_something_else_from_db($data2) == TRUE){
if(update_something_related_to_the_others_in_db($data3) == TRUE){
return TRUE;
}
}
} else {
return FALSE;
}
如果任何嵌套查询失败,则先前的操作将结束,这会导致数据库中的数据混乱。是否有可能/有一些技术/最佳实践,停止执行操作,直到你知道它们是否都会成功。
我有一个例子:
如果有人想加入某个群组,则会点击“加入群组” - 在数据库中创建通知。这显示在组所有者的管理面板中。 - 团体所有者可以拒绝/接受申请。
接受: - 使用新组信息更新申请人用户数据。 - 最初发送给组管理员的通知将被删除 - 为申请人创建新通知,告知他已被录取。
仅当最外层条件返回false(假设用户数据已更新)时,实际数据库才会保留原始数据。如果第一次更新通过,而不是下一次更新,则更新配置文件以反映与新组的链接,但组管理员区域中的通知未消失。
此致 丹尼斯
答案 0 :(得分:3)
您希望所有查询都在transaction中,以确保全部或全无行为。
基本上,你会:
您可能希望阅读更多常规信息:Database transaction