Как выполнять транзакции в PHP с MySQL?

Вопрос проверяет понимание механизма транзакций и их использования для обеспечения согласованности данных.

Короткий ответ

Транзакции позволяют выполнять несколько запросов к базе данных как единое целое. Если один из запросов завершится неудачей, можно откатить изменения. В PHP транзакции реализуются через MySQLi или PDO, с использованием методов beginTransaction, commit и rollBack.

Длинный ответ

Транзакции позволяют группировать операции в одно действие, чтобы изменения применялись только при успешном выполнении всех операций.

 

Этапы работы:

- Начните транзакцию: beginTransaction (PDO) или START TRANSACTION.

- Выполните запросы.

- Зафиксируйте изменения с помощью commit или откатите их с помощью rollBack при ошибке.

 

Пример с PDO:

try {
    $pdo = new PDO("mysql:host=localhost;dbname=database", "user", "password");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $pdo->beginTransaction();

    $pdo->exec("INSERT INTO accounts (name, balance) VALUES ('Alice', 1000)");
    $pdo->exec("INSERT INTO accounts (name, balance) VALUES ('Bob', 500)");

    $pdo->commit(); // Фиксация изменений
    echo "Транзакция выполнена успешно.";
} catch (Exception $e) {
    $pdo->rollBack(); // Откат изменений
    echo "Ошибка: транзакция отменена. " . $e->getMessage();
}

 

Используйте транзакции для критически важных операций, где важно обеспечить целостность данных, например, при выполнении финансовых операций.

Уровень

  • Рейтинг:

    3

  • Сложность:

    6

Навыки

  • PHP

Ключевые слова

Подпишись на PHP Developer в телеграм