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

Метод commit класса Connection

Метод commit класса Connection завершает текущую активную транзакцию базы данных, применяя все изменения, которые были выполнены с момента вызова метода beginTransaction. Метод не принимает параметров и возвращает bool: значение true в случае успешной фиксации транзакции.

Синтаксис

public function commit(): bool

Пример

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

<?php namespace AppRepository; use DoctrineDBALConnection; class ArticleRepository { private Connection $connection; public function __construct(Connection $connection) { $this->connection = $connection; } public function createArticle(string $title): bool { $this->connection->beginTransaction(); $this->connection->insert('article', [ 'title' => $title, 'text' => 'abcde', ]); return $this->connection->commit(); } } ?>

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

true

Пример

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

<?php namespace AppRepository; use DoctrineDBALConnection; class ArticleRepository { private Connection $connection; public function __construct(Connection $connection) { $this->connection = $connection; } public function updateArticle(int $id, string $title): array { $this->connection->beginTransaction(); $before = $this->connection->isTransactionActive(); $this->connection->update('article', [ 'title' => $title, ], ['id' => $id]); $this->connection->commit(); $after = $this->connection->isTransactionActive(); return [$before, $after]; } } ?>

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

[true, false]

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

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