PHP: PDO
Теория: Транзакции
Предположим, у нас есть две таблицы в базе данных: products и orders. При оформлении заказа необходимо сделать два запроса — добавить новую запись в таблицу orders и уменьшить количество доступных товаров в таблице products. Если происходит ошибка при изменении одной из таблиц, то данные в базе могут оказаться несогласованными. Чтобы избежать таких ситуаций, используются транзакции.
Транзакции - это механизм обеспечения целостности данных в базе данных, который позволяет выполнить несколько операций как единое целое. Если одна из операций в транзакции завершается неудачно, то все предыдущие операции в транзакции откатываются, возвращая базу данных в исходное состояние
При создании соединения PDO по умолчанию работает в режиме автоматической фиксации. Это значит, что каждый запрос к базе данных, который вы выполняете, неявно заключается в транзакцию. Чтобы явно указать начало транзакции, нужно использовать метод beginTransaction(). Если все запросы в рамках транзакции выполнены успешно, вы можете зафиксировать её методом commit(). Если же во время выполнения одного из запросов произошла ошибка, транзакция откатывается методом rollBack() и база данных остается без изменений
В рамках транзакции можно выполнять любое количество запросов
.png)

