Skip to content

Commit 011dab1

Browse files
committed
Use the real installation number instead of hardcoded
The parameters of the condition builder are not replaced by `WCF::getDB()->prepare()` during statement preparation.
1 parent 6025047 commit 011dab1

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

wcfsetup/install/files/lib/acp/page/SystemCheckPage.class.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use wcf\data\application\Application;
66
use wcf\page\AbstractPage;
7+
use wcf\system\application\ApplicationHandler;
78
use wcf\system\database\util\PreparedStatementConditionBuilder;
89
use wcf\system\Environment;
910
use wcf\system\exception\SystemException;
@@ -300,9 +301,13 @@ protected function validateMysql()
300301
foreach ($keys as $column => $reference) {
301302
$innerConditionBuilder = new PreparedStatementConditionBuilder(false);
302303
$innerConditionBuilder->add('REFERENCED_TABLE_SCHEMA = ?', [WCF::getDB()->getDatabaseName()]);
303-
$innerConditionBuilder->add('REFERENCED_TABLE_NAME = ?', [$reference['referenceTable']]);
304+
$innerConditionBuilder->add('REFERENCED_TABLE_NAME = ?', [
305+
ApplicationHandler::insertRealDatabaseTableNames($reference['referenceTable'])
306+
]);
304307
$innerConditionBuilder->add('REFERENCED_COLUMN_NAME = ?', [$reference['referenceColumn']]);
305-
$innerConditionBuilder->add('TABLE_NAME = ?', [$table]);
308+
$innerConditionBuilder->add('TABLE_NAME = ?', [
309+
ApplicationHandler::insertRealDatabaseTableNames($table)
310+
]);
306311
$innerConditionBuilder->add('COLUMN_NAME = ?', [$column]);
307312

308313
$conditionBuilder->add('(' . $innerConditionBuilder . ')', $innerConditionBuilder->getParameters());

0 commit comments

Comments
 (0)