Junior — Middle
Aprašykite savo patirtį naudojant transakcinius mechanizmus projektuose.
sobes.tech AI
Atsakymas iš AI
PHP projektuose aš dažniausiai naudoju transakcijas dirbdamas su duomenų bazėmis, kad užtikrinčiau duomenų vientisumą. Pavyzdžiui, kai vykdau kelias susijusias operacijas (pavyzdžiui, užsakymo įvedimą ir atsargų atnaujinimą), jas apgaubiu transakcija, kad klaidos atveju galėčiau atšaukti visas pakeitimus.
Pavyzdys naudojant PDO:
try {
$pdo->beginTransaction();
$pdo->exec("INSERT INTO orders (user_id, total) VALUES (1, 100)");
$pdo->exec("UPDATE products SET stock = stock - 1 WHERE id = 10");
$pdo->commit();
} catch (Exception $e) {
$pdo->rollBack();
echo "Klaida: " . $e->getMessage();
}
Šis požiūris padeda išvengti dalinių duomenų atnaujinimų ir išlaikyti duomenų bazės nuoseklumą.