pdo mysql 事务_PHP PDO对象如何确定它是否已经存在于MySQL事务中?

我有两个复杂的

PHP对象,每个对象都有几个MysqL表中的数据.

有时,我只需要从数据库中删除一个对象A,这需要3个sql语句.

有时,我需要从数据库中删除一个对象B,这需要4个sql语句,并且还需要查找和删除对象B拥有的所有对象A.

所以在函数delete_A()中,我在一个事务中执行那些语句.在delete_B()函数内部,我想运行一个覆盖delete_A()内部活动的大型事务.如果删除B的整个原子都失败了,我需要在回滚中恢复它的所有A.

如果尚未运行更大的事务,如何更新delete_A()的定义以仅打开新事务.

我希望能够做这样的事情,但autTraommit属性似乎没有被beginTransaction()改变

function delete_A($a){

global $pdo;

$already_in_transaction = !$pdo->getAttribute(PDO::ATTR_AUTOCOMMIT);

if(!$already_in_transaction){

$pdo->beginTransaction();

}

//Delete the A

if(!$already_in_transaction){

$pdo->commit();

}

}

function delete_B($b){

global $pdo;

$pdo->beginTransaction();

foreach($list_of_As as $a){

delete_A($a);

}

$pdo->commit();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值