首页 文章

交易,存储过程和PDO

提问于
浏览
2

PHP中的单个操作必须执行以下步骤:

  • 执行号码 . 来自PHP PDO的mysql语句,基于许多业务逻辑 .

  • 执行存储过程 .

  • 从PDO执行更多MySQL语句 .

整个过程需要是一个单一的交易 . 如果MySQL存储过程中发生任何错误,则必须回滚整个事务 . (存储过程具有查询以创建临时表,执行基于游标的扫描并执行插入 . )即使在存储过程之后PDO中发生错误,也必须完全回滚事务,包括发生的任何更改 . 存储过程 .

基于PDO的查询在很长一段时间内被编程 . 并且根据客户的新要求重新引入存储过程 .

在PHP中,事务在步骤1开始时启动 . 并且在步骤3结束时有一个提交 . 最后有一个catch块,这会导致回滚 .

是否应该在存储过程中启动事务?如果是这样,如何完全回滚错误?或者我们应该在存储过程中手动将auto-commit设置为false吗?或者,是否有其他方式通知MySQL此存储过程已经是事务的一部分 .

如果不是,整个行动的原子性是否得到保证?

1 回答

相关问题