1
0
mirror of https://github.com/chylex/Lightning-Tracker.git synced 2025-06-02 13:34:10 +02:00
Lightning-Tracker/src/Update/Tasks/SqlTransactionTask.php

35 lines
590 B
PHP

<?php
declare(strict_types = 1);
namespace Update\Tasks;
use PDO;
use Update\AbstractMigrationTask;
final class SqlTransactionTask extends AbstractMigrationTask{
/**
* @var string[]
*/
private array $statements;
public function __construct(array $statements){
$this->statements = $statements;
}
public function prepare(PDO $db): void{
$db->beginTransaction();
}
public function execute(PDO $db): void{
foreach($this->statements as $sql){
$db->exec($sql);
}
}
public function finalize(PDO $db): void{
$db->commit();
}
}
?>