2

PHP 中的单个操作必须经过以下步骤:

  1. 执行否。来自 PHP PDO 的 mysql 语句,基于大量的业务逻辑。
  2. 执行存储过程。
  3. 从 PDO 执行更多 MySQL 语句。

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

基于 PDO 的查询在很久以前就被编程了。存储过程是根据客户的新要求而新推出的。

在 PHP 中,Transaction 在 Step 1 开始时启动。在 Step 3 结束时有一个 commit。最后有一个 catch 块,导致回滚。

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

如果不是,是否保证整个操作的原子性?

4

1 回答 1

-1

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

于 2013-03-01T23:47:57.773 回答