projects
/
platal.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Returns transaction result.
[platal.git]
/
classes
/
xdb.php
diff --git
a/classes/xdb.php
b/classes/xdb.php
index
c353f54
..
c991934
100644
(file)
--- a/
classes/xdb.php
+++ b/
classes/xdb.php
@@
-194,8
+194,13
@@
class XDB
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');
}
@@
-204,12
+209,14
@@
class XDB
{
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)
@@
-238,7
+245,7
@@
class XDB
{
$args = func_get_args();
$cb = array_shift($args);
{
$args = func_get_args();
$cb = array_shift($args);
- self::runTransactionV($cb, $args);
+
return
self::runTransactionV($cb, $args);
}
public static function iterator()
}
public static function iterator()