[ticket/17509] Add MariaDB version requirement check

PHPBB-17509
This commit is contained in:
rxu 2025-05-30 11:54:32 +07:00
parent b8e5caedbf
commit f23af6f485
No known key found for this signature in database
GPG key ID: 8117904FEDEFDD17
2 changed files with 12 additions and 2 deletions

View file

@ -202,6 +202,7 @@ $lang = array_merge($lang, array(
'INST_ERR_DB_NO_WRITABLE' => 'Both the database and the directory containing it must be writable.', 'INST_ERR_DB_NO_WRITABLE' => 'Both the database and the directory containing it must be writable.',
'INST_ERR_DB_NO_ERROR' => 'No error message given.', 'INST_ERR_DB_NO_ERROR' => 'No error message given.',
'INST_ERR_PREFIX' => 'Tables with the specified prefix already exist, please choose an alternative.', 'INST_ERR_PREFIX' => 'Tables with the specified prefix already exist, please choose an alternative.',
'INST_ERR_DB_NO_MARIADB' => 'The version of MariaDB installed on this machine is too old, it must be upgraded to at least 10.2.7.',
'INST_ERR_DB_NO_MYSQLI' => 'The version of MySQL installed on this machine is too old, it must be upgraded to at least 5.6.', 'INST_ERR_DB_NO_MYSQLI' => 'The version of MySQL installed on this machine is too old, it must be upgraded to at least 5.6.',
'INST_ERR_DB_NO_MSSQL' => 'The version of Microsoft SQL Server installed on this machine is too old, it must be upgraded to at least SQL Server 2012 (11.0.2100.60)', 'INST_ERR_DB_NO_MSSQL' => 'The version of Microsoft SQL Server installed on this machine is too old, it must be upgraded to at least SQL Server 2012 (11.0.2100.60)',
'INST_ERR_DB_NO_SQLITE3' => 'The version of the SQLite extension you have installed is too old, it must be upgraded to at least 3.8.3.', 'INST_ERR_DB_NO_SQLITE3' => 'The version of the SQLite extension you have installed is too old, it must be upgraded to at least 3.8.3.',

View file

@ -410,12 +410,21 @@ class database
switch ($dbms) switch ($dbms)
{ {
case 'mysqli': case 'mysqli':
if (stripos($db->sql_server_info(), 'mariadb') !== false && version_compare($db_server_version, '10.2.7', '<'))
{
$errors[] = array(
'title' => 'INST_ERR_DB_NO_MARIADB',
);
}
else
{
if (version_compare($db_server_version, '5.6', '<')) if (version_compare($db_server_version, '5.6', '<'))
{ {
$errors[] = array( $errors[] = array(
'title' => 'INST_ERR_DB_NO_MYSQLI', 'title' => 'INST_ERR_DB_NO_MYSQLI',
); );
} }
}
break; break;
case 'sqlite3': case 'sqlite3':
if (version_compare($db_server_version, '3.8.3', '<')) if (version_compare($db_server_version, '3.8.3', '<'))