РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
243 of 258 menu

Метод isTransactionActive

Метод isTransactionActive класса Connection возвращает булево значение, указывающее на то, открыта ли транзакция в данный момент. Метод не принимает параметров и возвращает true, если транзакция активна, и false в противном случае. Метод удобно использовать для проверки состояния соединения перед вызовом commit или rollBack.

Синтаксис

public function isTransactionActive(): bool

Пример

Давайте проверим состояние транзакции до и после её открытия:

<?php namespace AppController; use DoctrineDBALConnection; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(Connection $connection): Response { $res = $connection->isTransactionActive(); var_dump($res); $connection->beginTransaction(); $res = $connection->isTransactionActive(); var_dump($res); $connection->rollBack(); return new Response('ok'); } } ?>

Результат выполнения кода:

bool(false) bool(true)

Пример

Давайте выполним вставку данных, проверив, что транзакция активна, и откатим её при необходимости:

<?php namespace AppController; use DoctrineDBALConnection; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(Connection $connection): Response { $connection->beginTransaction(); $connection->executeStatement( 'INSERT INTO article (title) VALUES (?)', ['article'] ); if ($connection->isTransactionActive()) { $connection->commit(); } return new Response('inserted'); } } ?>

Результат выполнения кода:

"inserted"

Смотрите также

  • класс Connection,
    который управляет соединением с базой данных
  • метод beginTransaction,
    который открывает новую транзакцию
  • метод commit,
    который фиксирует текущую транзакцию
  • метод rollBack,
    который откатывает текущую транзакцию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить