跨许多PHP请求的MySQL事务

前端之家收集整理的这篇文章主要介绍了跨许多PHP请求的MySQL事务前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想创建一个用于以类似事务的方式操作发票的界面.

数据库包含一个发票表和一个invoice_lines表,发票表中包含结算信息,invoice_lines表包含发票的行项目.该网站是一组脚本,允许添加,修改删除发票及其相应的行.

我遇到的问题是,我希望数据库的ACID属性能够反映在Web应用程序中.

>原子:当用户点击保存时,修改整个发票或根本不更改整个发票.
>一致:应用程序代码已确保一致性,不能将行添加到不存在的发票中.发票ID不能重复.
>隔离:如果用户正在对发票进行一组更改,我希望在用户单击“保存”之前隐藏其他用户的更改.
>耐用:如果网站死亡,数据应该是安全的.这已经有效了.

如果我正在编写桌面应用程序,它将始终保持与MySQL数据库的连接,允许我在编辑的开头和结尾简单地使用BEGIN TRANSACTION和COMMIT.

根据我的理解,你不能在一个PHP页面上进行BACIN TRANSACTION而在另一个页面上进行COMMIT,因为页面之间的连接是关闭的.

有没有办法在没有扩展的情况下实现这一目标?根据我的发现,只有SQL Relay这样做(但它是一个扩展).

你不想拥有长时间运行的事务,因为这会限制并发性. http://en.wikipedia.org/wiki/Command_pattern

猜你在找的PHP相关文章