交易,存储过程和PDO

时间:2012-10-05 11:35:04

标签: php mysql stored-procedures pdo

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:-1)

这是mohip引用的链接:http://dev.mysql.com/doc/refman/5.6/en/begin-end.html 事务不是自动在存储过程中运行,需要通过“START TRANSACTION”触发它,我正要问这个问题。谢谢你的报价。