@@ -463,17 +463,19 @@ function db_connect($db_data = '')
463463
464464 if (empty ($ db_data ))
465465 {
466- list ($ dbms , $ dbhost , $ dbuser , $ dbpasswd , $ dbport ) = $ settings ->get_db_data ();
466+ list ($ dbms , $ dbhost , $ dbuser , $ dbpasswd , $ dbport, $ db_prefix ) = $ settings ->get_db_data ();
467467 // When db_data is empty, it means the db does not exist yet, so for postgres
468468 // we need to set dbname to false so the driver can connect to the postgres db
469469 $ dbname = ($ dbms !== 'postgres ' ) ? $ settings ->get_config ('dbname ' ) : false ;
470470 }
471471 else
472472 {
473- list ($ dbms , $ dbhost , $ dbuser , $ dbpasswd , $ dbport ) = $ db_data ;
473+ list ($ dbms , $ dbhost , $ dbuser , $ dbpasswd , $ dbport, $ db_prefix ) = $ db_data ;
474474 $ dbname = $ settings ->get_config ('dbname ' );
475475 }
476476
477+ $ dbname = $ dbname ? $ db_prefix . $ dbname : $ dbname ;
478+
477479 // If we get here and the extension isn't loaded it should be safe to just go ahead and load it
478480 $ available_dbms = qi_get_available_dbms ($ dbms );
479481
@@ -537,6 +539,37 @@ function db_close($db = false)
537539 $ db ->sql_close ();
538540}
539541
542+ function get_db_doctrine ()
543+ {
544+ global $ settings ;
545+
546+ $ dbms = $ settings ->get_config ('dbms ' );
547+ $ dbhost = $ settings ->get_config ('dbhost ' );
548+ $ dbuser = $ settings ->get_config ('dbuser ' );
549+ $ dbpasswd = $ settings ->get_config ('dbpasswd ' );
550+ $ dbname = $ settings ->get_config ('dbname ' );
551+ $ dbport = $ settings ->get_config ('dbport ' );
552+ $ db_prefix = $ settings ->get_config ('db_prefix ' );
553+
554+ // We need the db prefix to be prepended to the database name
555+ $ dbname = $ db_prefix . $ dbname ;
556+
557+ // SQLite needs the dbname appended to the dbhost
558+ if (in_array ($ dbms , array ('sqlite ' , 'sqlite3 ' )))
559+ {
560+ $ dbhost .= $ dbname ;
561+ }
562+
563+ return \phpbb \db \doctrine \connection_factory::get_connection_from_params (
564+ $ dbms ,
565+ $ dbhost ,
566+ $ dbuser ,
567+ $ dbpasswd ,
568+ $ dbname ,
569+ $ dbport
570+ );
571+ }
572+
540573function qi_get_available_dbms ($ dbms )
541574{
542575 if (defined ('PHPBB_32 ' ))
0 commit comments