mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
[ticket/11278] Fix not running queries from db tools in database update
The db_tools class is running in return mode, which means that the queries are not run, but just returned. Therefor the broken tables were not removed from the database. PHPBB3-11278
This commit is contained in:
parent
a288c4b66b
commit
f0c780a453
1 changed files with 12 additions and 13 deletions
|
@ -1017,7 +1017,7 @@ function database_update_info()
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
function change_database_data(&$no_updates, $version)
|
function change_database_data(&$no_updates, $version)
|
||||||
{
|
{
|
||||||
global $db, $errored, $error_ary, $config, $phpbb_root_path, $phpEx;
|
global $db, $db_tools, $errored, $error_ary, $config, $phpbb_root_path, $phpEx;
|
||||||
|
|
||||||
switch ($version)
|
switch ($version)
|
||||||
{
|
{
|
||||||
|
@ -1332,8 +1332,6 @@ function change_database_data(&$no_updates, $version)
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
global $db_tools;
|
|
||||||
|
|
||||||
$statements = $db_tools->perform_schema_changes($changes);
|
$statements = $db_tools->perform_schema_changes($changes);
|
||||||
|
|
||||||
foreach ($statements as $sql)
|
foreach ($statements as $sql)
|
||||||
|
@ -1975,24 +1973,25 @@ function change_database_data(&$no_updates, $version)
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
global $db_tools, $table_prefix;
|
global $table_prefix;
|
||||||
|
|
||||||
// Recover from potentially broken Q&A CAPTCHA table on firebird
|
// Recover from potentially broken Q&A CAPTCHA table on firebird
|
||||||
// Q&A CAPTCHA was uninstallable, so it's safe to remove these
|
// Q&A CAPTCHA was uninstallable, so it's safe to remove these
|
||||||
// without data loss
|
// without data loss
|
||||||
if ($db_tools->sql_layer == 'firebird')
|
if ($db_tools->sql_layer == 'firebird')
|
||||||
{
|
{
|
||||||
$tables = array(
|
$changes = array(
|
||||||
$table_prefix . 'captcha_questions',
|
'drop_tables' => array(
|
||||||
$table_prefix . 'captcha_answers',
|
$table_prefix . 'captcha_questions',
|
||||||
$table_prefix . 'qa_confirm',
|
$table_prefix . 'captcha_answers',
|
||||||
|
$table_prefix . 'qa_confirm',
|
||||||
|
),
|
||||||
);
|
);
|
||||||
foreach ($tables as $table)
|
$statements = $db_tools->perform_schema_changes($changes);
|
||||||
|
|
||||||
|
foreach ($statements as $sql)
|
||||||
{
|
{
|
||||||
if ($db_tools->sql_table_exists($table))
|
_sql($sql, $errored, $error_ary);
|
||||||
{
|
|
||||||
$db_tools->sql_table_drop($table);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue