Метод 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,
который управляет подключением к базе данных