- Working on revamping Ulmus bases classes

This commit is contained in:
mcndave authored and Dave Mc Nicoll committed 2026-10-22 17:24:04 +00:00
1 parent c417b00ed4
commit 25ab845886
12 files changed
+303 -52

No files matched your search

+43
View File
@@ -0,0 +1,43 @@
<?php
namespace Ulmus\Pdo;
trait SqlPdoTrait
{
protected int $openedTransaction = 0;
public function beginTransaction(): bool
{
if ( 0 === $this->openedTransaction++ ) {
return $this->openTransaction();
}
return $this->exec("SAVEPOINT transaction_{$this->openedTransaction}") !== false;
}
public function commit() : bool
{
if ( 0 === --$this->openedTransaction) {
return parent::commit();
}
return $this->exec("RELEASE SAVEPOINT transaction_{$this->openedTransaction}") !== false;
}
public function rollback() : bool
{
if ($this->openedTransaction > 1) {
return $this->exec('ROLLBACK TO transaction_' . $this->openedTransaction--) !== false;
}
elseif ($this->openedTransaction-- === 1) {
return parent::rollback();
}
return false;
}
protected function openTransaction() : bool
{
return parent::beginTransaction();
}
}