Я хочу совершить две последовательные транзакции с Doctrine в Symfony 3.
Первая транзакция в порядке, но вторая, похоже, работает, потому что $ insertRows всегда получает 1 и явно не выполняет откат, но когда выполняется фиксация, кажется, что эта последняя вставка не применяется. Если я ищу строку в реальной базе данных не там.
Я оставляю здесь пример того, что я делаю.
$db->beginTransaction();
$db->setAutoCommit(false);
//the first transaction it's to update a register with another num
try{
$num = $this->getNum($params);
if(!($num > 0)){ $db->rollBack();}
$updatedRows = $this->updateNum($params);
if($updatedRows === 0){ $db->rollBack();}
$db->commit();
} catch (\Exception $e) {
$db->rollBack();
throw $e;
}
//until here is ok. I can see the changes in the database
//this second transatcion I don't know why is not working.
$db->beginTransaction();
$db->setAutoCommit(false);
try{
$insertedRows = $this->insertNewRegister($params);
if($insertedRows === 0){ $db->rollBack();}
//the insertedRows is equal to 1 if I do a dump here, so it seems is inserting this new row
//but after the commit if I check this new row in the database is not there
$db->commit();
} catch (\Exception $e) {
$db->rollBack();
throw $e;
}
Кто-нибудь знает, что я делаю не так? Возможно, любой может показать мне пример двух последовательных транзакций.