gpt4 book ai didi

php - 事务、存储过程和 PDO

转载 作者:行者123 更新时间:2023-11-29 03:48:32 25 4
gpt4 key购买 nike

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

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

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

基于 PDO 的查询是在很久以前编写的。并且根据客户的新需求,新引入了存储过程。

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

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

如果不是,是否保证了整个 Action 的原子性?

最佳答案

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

关于php - 事务、存储过程和 PDO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12745446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com