Это значит в какой-то функции используется транзакция:
function ff() {
$db->begin();
$db->query(…);
$db->query(…);
$db->commit();
}
А потом в другом месте в рамках другой транзакции вызывается эта функция.
$db->begin();
$db->query(…);
ff();
$db->query(…);
$db->commit();
Первый коммит будет вызван в ff(), но фактического коммита при этом не произойдёт.
$db->begin() = function (){ $this->openTr++}
$db->commit() = function (){ if $this->openTr > 1 then $this->openTr– else $this->realCommit()}
так чтоли?