Транзакции PDO на практике
Транзакция защищает согласованность нескольких SQL-изменений, но не откатывает email или внешний HTTP-запрос.
beginTransaction() → commit() / rollBack()Граница
Открывайте транзакцию непосредственно перед первым связанным изменением и завершайте сразу после последнего.
Исключение
При Throwable выполните rollback, если транзакция активна, затем передайте ошибку уровню обработки.
Блокировки
Длинная транзакция удерживает блокировки и увеличивает вероятность конфликта. Не ждите пользовательского ответа внутри неё.
Тест
Интеграционный тест должен доказать, что ошибка между двумя изменениями не оставляет половину результата.
Связанные материалы
Источники и проверка
- PHP Documentation Group — структурный источник, без внешней ссылки
Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.