tayyorlangan va tayyorlanmagan xabarlar uchun startTransaction () va commit () ni ishga tushirish

Quyidagi kod bor:

try{
 $db->beginTransaction();
 $handler = $db->prepare(...);
 $handler->execute()
 $query2 = "INSERT INTO...";
 $db->exec($query2);
 $db->commit();
}catch (PDOException $e) {
 try { $db->rollBack(); } catch (Exception $e2) {}
}

Mening savolim: rollBack() ikkala har qanday o'zgarishlarni keltirib chiqaradimi? execute() va exec() ? exec() dan foydalanish uchun sabab mening dinamik ravishda $ query2 yaratishim kerakligi va shu sababli men uchun juda oson.

0

1 javoblar

Jarayonning boshlanishi bilan orqaga qaytariladigan nuqtadan amalga oshirilgan har qanday operatsiyalar qaytariladi. Bu operatsiyalarni QANDAY amalga oshirganingiz muhim emas - ular qaytib ketadi.

Albatta, bu tranzaktsiyalarga mos ma'lumotlar bazalarini/jadvallarini ishlatmoqchi. Misol uchun, exec() MySQL-da MyISQL jadvalida va InnODB jadvalida() bajarilgan bo'lsa InnoDB operatsiyalari qaytarib olinadi, ammo siz MyISAMda saqlanyapsiz.

1
qo'shib qo'ydi
PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin