mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-31 22:10:45 +02:00
[feature/sqlite3] Add support for SQLite 3
Minimum version requirement is 3.6.15 as that's what ships with PHP 5.3.0 when support for SQLite 3 was added. PHPBB3-9728
This commit is contained in:
committed by
Joas Schilling
parent
d52c2d1b5c
commit
b39b0369aa
@@ -106,6 +106,15 @@ function get_available_dbms($dbms = false, $return_unavailable = false, $only_20
|
||||
'AVAILABLE' => true,
|
||||
'2.0.x' => false,
|
||||
),
|
||||
'sqlite3' => array(
|
||||
'LABEL' => 'SQLite3',
|
||||
'SCHEMA' => 'sqlite',
|
||||
'MODULE' => 'sqlite3',
|
||||
'DELIM' => ';',
|
||||
'DRIVER' => 'phpbb\db\driver\sqlite3',
|
||||
'AVAILABLE' => true,
|
||||
'2.0.x' => false,
|
||||
),
|
||||
);
|
||||
|
||||
if ($dbms)
|
||||
@@ -206,14 +215,14 @@ function connect_check_db($error_connect, &$error, $dbms_details, $table_prefix,
|
||||
$db->sql_return_on_error(true);
|
||||
|
||||
// Check that we actually have a database name before going any further.....
|
||||
if ($dbms_details['DRIVER'] != 'phpbb\db\driver\sqlite' && $dbms_details['DRIVER'] != 'phpbb\db\driver\oracle' && $dbname === '')
|
||||
if ($dbms_details['DRIVER'] != 'phpbb\db\driver\sqlite' && $dbms_details['DRIVER'] != 'phpbb\db\driver\sqlite3' && $dbms_details['DRIVER'] != 'phpbb\db\driver\oracle' && $dbname === '')
|
||||
{
|
||||
$error[] = $lang['INST_ERR_DB_NO_NAME'];
|
||||
return false;
|
||||
}
|
||||
|
||||
// Make sure we don't have a daft user who thinks having the SQLite database in the forum directory is a good idea
|
||||
if ($dbms_details['DRIVER'] == 'phpbb\db\driver\sqlite' && stripos(phpbb_realpath($dbhost), phpbb_realpath('../')) === 0)
|
||||
if (($dbms_details['DRIVER'] == 'phpbb\db\driver\sqlite' || $dbms_details['DRIVER'] == 'phpbb\db\driver\sqlite3') && stripos(phpbb_realpath($dbhost), phpbb_realpath('../')) === 0)
|
||||
{
|
||||
$error[] = $lang['INST_ERR_DB_FORUM_PATH'];
|
||||
return false;
|
||||
@@ -243,6 +252,7 @@ function connect_check_db($error_connect, &$error, $dbms_details, $table_prefix,
|
||||
break;
|
||||
|
||||
case 'phpbb\db\driver\sqlite':
|
||||
case 'phpbb\db\driver\sqlite3':
|
||||
$prefix_length = 200;
|
||||
break;
|
||||
|
||||
@@ -299,6 +309,14 @@ function connect_check_db($error_connect, &$error, $dbms_details, $table_prefix,
|
||||
}
|
||||
break;
|
||||
|
||||
case 'phpbb\db\driver\sqlite3':
|
||||
$version = \SQLite3::version();
|
||||
if (version_compare($version['versionString'], '3.6.15', '<'))
|
||||
{
|
||||
$error[] = $lang['INST_ERR_DB_NO_SQLITE3'];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'phpbb\db\driver\firebird':
|
||||
// check the version of FB, use some hackery if we can't get access to the server info
|
||||
if ($db->service_handle !== false && function_exists('ibase_server_info'))
|
||||
|
Reference in New Issue
Block a user