Решение.
1. Таблица обязательно innoDb или DBD (мануал mysql)
После этого ничего не изменилось.
2. Перед транзакцией нужно set autocommit = 0; после set autocommit = 1 (mysql manual)
В итоге
<?php
/**
* @var PDO $db
*//
$db->exec('set autocommit=0');
try
{
if ( false === $db->beginTransaction() )
throw new Exception('bla bla bla ');
// do smth
$db->commit();
}
catch ( Exception $e)
{
$db->rollBack();
$logger->error( $e->getMessage ) ;
}
$db->exec('set autocommit=1');
?>

0 comments:
Post a Comment