Sobes.tech
Junior — Middle

Նկարագրեք ձեր փորձը գործարքային մեխանիզմների օգտագործման վերաբերյալ նախագծերում։

sobes.tech AI

Պատասխան AI-ից

PHP նախագծերում ես հիմնականում տվյալների բազաների հետ աշխատելիս օգտագործել եմ գործարքներ՝ տվյալների ամբողջականությունը ապահովելու համար: Օրինակ, երբ մի քանի կապված գործողություններ եմ իրականացնում (օրինակ՝ պատվերի ավելացում և պահեստի մնացորդների թարմացում), դրանք ընդգրկում էի գործարքի մեջ, որպեսզի սխալի դեպքում վերականգնեմ բոլոր փոփոխությունները:

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 "Սխալ: " . $e->getMessage();
}

Այս մոտեցումը օգնում է խուսափել մասնակի տվյալների թարմացումներից և պահպանում է տվյալների բազայի համահունչությունը։