diff --git a/src/Dibi/Connection.php b/src/Dibi/Connection.php index 1227ad14..16a5241d 100644 --- a/src/Dibi/Connection.php +++ b/src/Dibi/Connection.php @@ -409,7 +409,7 @@ class Connection implements IConnection { $this->begin(); try { - $res = $callback(); + $res = $callback($this); } catch (\Throwable $e) { $this->rollback(); throw $e; diff --git a/tests/dibi/Connection.transactions.phpt b/tests/dibi/Connection.transactions.phpt index 0a7d5bf8..d0a74da4 100644 --- a/tests/dibi/Connection.transactions.phpt +++ b/tests/dibi/Connection.transactions.phpt @@ -52,8 +52,8 @@ Assert::same(4, (int) $conn->query('SELECT COUNT(*) FROM [products]')->fetchSing Assert::exception(function () use ($conn) { - $conn->transaction(function () use ($conn) { - $conn->query('INSERT INTO [products]', [ + $conn->transaction(function (Dibi\Connection $connection) { + $connection->query('INSERT INTO [products]', [ 'title' => 'Test product', ]); throw new Exception('my exception'); @@ -62,8 +62,8 @@ Assert::exception(function () use ($conn) { Assert::same(4, (int) $conn->query('SELECT COUNT(*) FROM [products]')->fetchSingle()); -$conn->transaction(function () use ($conn) { - $conn->query('INSERT INTO [products]', [ +$conn->transaction(function (Dibi\Connection $connection) { + $connection->query('INSERT INTO [products]', [ 'title' => 'Test product', ]); });