diff options
author | Nils Adermann <naderman@naderman.de> | 2011-06-12 11:40:57 +0200 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2011-06-12 11:40:57 +0200 |
commit | 2569d7460ae8ba771b840f437c3846fc1f2c3e07 (patch) | |
tree | be486d2c3230c60e07d6a374b854adb67657b08c | |
parent | ef977abe596fdc926e84e10fd994278665d38417 (diff) | |
download | forums-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.php | 21 |
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); |