Transakce proběhne, ale vyhodí There is no active transaction

BuMoRi
Člen | 109
+
0
-

Ahoj, poprvý zkouším transakce, takže tam určitě budu mít nějakou primitivní chybu, ale už nevím co vyzkoušet:

<?php
	public function saveOrder($values, $sessionShop): void
	{
		$this->database->beginTransaction();

		$customer = $this->checkCustomer($values);
		if (!$customer) {
			$idCustomer = $this->saveCustomer($values);
		} else {
			$idCustomer = $customer['id'];
		}
		$idOrder = $this->saveCart($values, $idCustomer, $sessionShop);
		$this->saveItems($idOrder, $sessionShop);

		$this->database->commit();
		$this->database->rollBack();
	}
?>

Vše proběhne jak má (teda jak já myslim že má). Až v okamžiku „commitu“ se uloží zákazník, objednávka a jednotlivé položky objednávky. Ale Tracy obarví poslední řádek a vyhodí There is no active transaction.
Předem díky za jakoukoliv radu.

David Matějka
Moderator | 6445
+
+3
-

mas tam commit a pod tim rollback, to nedava smysl, smaz ten radek s rollBack

BuMoRi
Člen | 109
+
0
-

Jasně, takže sem jen špatně pochopil dokumentaci: https://doc.nette.org/…atabase/core#…
Myslel sem že až rollBack vrátí autocommit režim a on to vlastně dělá už ten commit.
Díky moc.