Signed-off-by: Florent Bruneau <florent.bruneau@polytechnique.org>
return self::run($query);
}
return self::run($query);
}
+ private static $inTransaction = false;
public static function startTransaction()
{
public static function startTransaction()
{
+ if (self::$inTransaction) {
+ throw new XDBException('START TRANSACTION', 'Already in a transaction');
+ }
+ self::$inTransaction = true;
self::rawExecute('SET AUTOCOMMIT = 0');
self::rawExecute('START TRANSACTION');
}
self::rawExecute('SET AUTOCOMMIT = 0');
self::rawExecute('START TRANSACTION');
}
{
self::rawExecute('COMMIT');
self::rawExecute('SET AUTOCOMMIT = 1');
{
self::rawExecute('COMMIT');
self::rawExecute('SET AUTOCOMMIT = 1');
+ self::$inTransaction = false;
}
public static function rollback()
{
self::rawExecute('ROLLBACK');
self::rawExecute('SET AUTOCOMMIT = 1');
}
public static function rollback()
{
self::rawExecute('ROLLBACK');
self::rawExecute('SET AUTOCOMMIT = 1');
+ self::$inTransaction = false;
}
public static function runTransactionV($callback, array $args)
}
public static function runTransactionV($callback, array $args)