qqq
This commit is contained in:
+13
-4
@@ -203,7 +203,7 @@ class Connection extends Component
|
|||||||
/** @var PDO $pdo */
|
/** @var PDO $pdo */
|
||||||
$pdo = Context::get($this->cds);
|
$pdo = Context::get($this->cds);
|
||||||
if ($pdo == null) {
|
if ($pdo == null) {
|
||||||
$pdo = Context::set($this->cds, $this->getTransactionClient());
|
$pdo = $this->getTransactionClient();
|
||||||
}
|
}
|
||||||
if (!$pdo->inTransaction()) {
|
if (!$pdo->inTransaction()) {
|
||||||
$pdo->beginTransaction();
|
$pdo->beginTransaction();
|
||||||
@@ -250,7 +250,16 @@ class Connection extends Component
|
|||||||
{
|
{
|
||||||
$this->storey--;
|
$this->storey--;
|
||||||
if ($this->storey == 0) {
|
if ($this->storey == 0) {
|
||||||
$this->clear();
|
/** @var PDO $pdo */
|
||||||
|
$pdo = Context::get($this->cds);
|
||||||
|
if ($pdo === null) {
|
||||||
|
throw new Exception('Failed to rollback transaction: connection was exists.');
|
||||||
|
}
|
||||||
|
if ($this->inTransaction()) {
|
||||||
|
$pdo->rollback();
|
||||||
|
}
|
||||||
|
$this->pool()->push($this->cds, [$pdo, time()]);
|
||||||
|
Context::remove($this->cds);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -264,9 +273,9 @@ class Connection extends Component
|
|||||||
if ($this->storey == 0) {
|
if ($this->storey == 0) {
|
||||||
$pdo = Context::get($this->cds);
|
$pdo = Context::get($this->cds);
|
||||||
if ($pdo === null) {
|
if ($pdo === null) {
|
||||||
return;
|
throw new Exception('Failed to commit transaction: connection was exists.');
|
||||||
}
|
}
|
||||||
if ($this->inTransaction()) {
|
if ($pdo->inTransaction()) {
|
||||||
$pdo->commit();
|
$pdo->commit();
|
||||||
}
|
}
|
||||||
$this->pool()->push($this->cds, [$pdo, time()]);
|
$this->pool()->push($this->cds, [$pdo, time()]);
|
||||||
|
|||||||
Reference in New Issue
Block a user