Fix Bug 33384 - database drivers cannot be provided by extension
[lhc/web/wiklou.git] / includes / db / Database.php
index 0293872..57d98ad 100644 (file)
@@ -675,9 +675,9 @@ abstract class DatabaseBase implements DatabaseType {
                        'mysql', 'postgres', 'sqlite', 'oracle', 'mssql', 'ibm_db2'
                );
                $dbType = strtolower( $dbType );
+               $class = 'Database' . ucfirst( $dbType );
 
                if( in_array( $dbType, $canonicalDBTypes ) ) {
-                       $class = 'Database' . ucfirst( $dbType );
                        return new $class(
                                isset( $p['host'] ) ? $p['host'] : false,
                                isset( $p['user'] ) ? $p['user'] : false,
@@ -686,6 +686,8 @@ abstract class DatabaseBase implements DatabaseType {
                                isset( $p['flags'] ) ? $p['flags'] : 0,
                                isset( $p['tablePrefix'] ) ? $p['tablePrefix'] : 'get from global'
                        );
+               } elseif (class_exists($class)) {
+                       return new $class($p);
                } else {
                        return null;
                }