Nasıl bir MySQL İşlem zaten eğer bir PHP PDO nesnesi rakam üzerinden yapabilirsiniz?

0 Cevap php

Birkaç MySQL tablolardaki verileri, her biri iki karmaşık PHP nesneleri, var.

Bazen, ben sadece veritabanından bir nesne A kaldırmak gerekir, ve bu 3 SQL deyimlerini alır.

Bazen, ben also A'nın bu nesne B sahibi nesnenin tüm bulmak ve kaldırmak için gereken 4 SQL ifadeleri alır, ve veritabanından gelen bir B nesne kaldırmak gerekir.

Yani fonksiyonu delete_A içinde (), bir işlem içinde bu ifadeleri yürütmek. Delete_B () fonksiyonunun içinde, I) delete_A (içindeki faaliyetleri kapsayan bir büyük büyük işlem çalıştırmak istiyorum. Bir B silme bütün atom başarısız olursa, ben geri alma onun A'nın tüm geri gerekir.

Nasıl sadece if zaten çalışan büyük bir işlem olmadığı, yeni bir işlem açmak için delete_A tanımını () güncelleme yapmak.

Ben böyle bir şey yapmak mümkün olması bekleniyor, ama autocommit niteliği beginTransaction() tarafından değiştirildi almak için görünmüyor

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 Cevap