aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2011-06-12 11:40:57 +0200
committerNils Adermann <naderman@naderman.de>2011-06-12 11:40:57 +0200
commit2569d7460ae8ba771b840f437c3846fc1f2c3e07 (patch)
treebe486d2c3230c60e07d6a374b854adb67657b08c
parentef977abe596fdc926e84e10fd994278665d38417 (diff)
downloadforums-2569d7460ae8ba771b840f437c3846fc1f2c3e07.tar
forums-2569d7460ae8ba771b840f437c3846fc1f2c3e07.tar.gz
forums-2569d7460ae8ba771b840f437c3846fc1f2c3e07.tar.bz2
forums-2569d7460ae8ba771b840f437c3846fc1f2c3e07.tar.xz
forums-2569d7460ae8ba771b840f437c3846fc1f2c3e07.zip
[ticket/9892] Transaction support for database update sql execution function
Updates would fail before because 'begin' as generated by db_tools::sql_create_table would be executed literally. PHPBB3-9892
-rw-r--r--phpBB/install/database_update.php21
1 files changed, 16 insertions, 5 deletions
diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php
index 7d7572b204..5bc856250b 100644
--- a/phpBB/install/database_update.php
+++ b/phpBB/install/database_update.php
@@ -534,12 +534,23 @@ function _sql($sql, &$errored, &$error_ary, $echo_dot = true)
$db->sql_return_on_error(true);
- $result = $db->sql_query($sql);
- if ($db->sql_error_triggered)
+ if ($sql === 'begin')
+ {
+ $db->sql_transaction('begin');
+ }
+ else if ($sql === 'commit')
{
- $errored = true;
- $error_ary['sql'][] = $db->sql_error_sql;
- $error_ary['error_code'][] = $db->sql_error_returned;
+ $db->sql_transaction('commit');
+ }
+ else
+ {
+ $result = $db->sql_query($sql);
+ if ($db->sql_error_triggered)
+ {
+ $errored = true;
+ $error_ary['sql'][] = $db->sql_error_sql;
+ $error_ary['error_code'][] = $db->sql_error_returned;
+ }
}
$db->sql_return_on_error(false);