Index: drupal/install.php =================================================================== RCS file: /cvs/drupal/drupal/install.php,v retrieving revision 1.97 diff -u -p -r1.97 install.php --- drupal/install.php 26 Nov 2007 16:36:42 -0000 1.97 +++ drupal/install.php 29 Nov 2007 03:43:41 -0000 @@ -192,7 +192,7 @@ function install_change_settings($profil drupal_maintenance_theme(); install_task_list('database'); - if ($db_url == 'mysql://username:password@localhost/databasename') { + if ($db_url == 'database://username:password@localhost/databasename#mysql') { $db_user = $db_pass = $db_path = ''; } elseif (!empty($db_url)) { @@ -365,7 +365,8 @@ function _install_settings_form_validate // Check database type if (!isset($form)) { $_db_url = is_array($db_url) ? $db_url['default'] : $db_url; - $db_type = substr($_db_url, 0, strpos($_db_url, '://')); + $_db_url = parse_url($_db_url); + $db_type = $_db_url['fragment']; } $databases = drupal_detect_database_types(); if (!in_array($db_type, $databases)) { @@ -373,7 +374,7 @@ function _install_settings_form_validate } else { // Verify - $db_url = $db_type .'://'. urlencode($db_user) . ($db_pass ? ':'. urlencode($db_pass) : '') .'@'. ($db_host ? urlencode($db_host) : 'localhost') . ($db_port ? ":$db_port" : '') .'/'. urlencode($db_path); + $db_url = 'database://'. urlencode($db_user) . ($db_pass ? ':'. urlencode($db_pass) : '') .'@'. ($db_host ? urlencode($db_host) : 'localhost') . ($db_port ? ":$db_port" : '') .'/'. urlencode($db_path) .'#'. $db_type; if (isset($form)) { form_set_value($form['_db_url'], $db_url, $form_state); } Index: drupal/includes/database.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/database.inc,v retrieving revision 1.84 diff -u -p -r1.84 database.inc --- drupal/includes/database.inc 12 Oct 2007 14:19:44 -0000 1.84 +++ drupal/includes/database.inc 29 Nov 2007 03:43:41 -0000 @@ -139,7 +139,8 @@ function db_set_active($name = 'default' $connect_url = $db_url; } - $db_type = substr($connect_url, 0, strpos($connect_url, '://')); + $_connect_url = parse_url($connect_url); + $db_type = $_connect_url['fragment']; $handler = "./includes/database.$db_type.inc"; if (is_file($handler)) { Index: drupal/sites/default/default.settings.php =================================================================== RCS file: /cvs/drupal/drupal/sites/default/default.settings.php,v retrieving revision 1.4 diff -u -p -r1.4 default.settings.php --- drupal/sites/default/default.settings.php 26 Nov 2007 08:06:52 -0000 1.4 +++ drupal/sites/default/default.settings.php 29 Nov 2007 03:43:41 -0000 @@ -86,11 +86,11 @@ * ); * * Database URL format: - * $db_url = 'mysql://username:password@localhost/databasename'; - * $db_url = 'mysqli://username:password@localhost/databasename'; - * $db_url = 'pgsql://username:password@localhost/databasename'; + * $db_url = 'database://username:password@localhost/databasename#mysql'; + * $db_url = 'database://username:password@localhost/databasename#mysqli'; + * $db_url = 'database://username:password@localhost/databasename#pgsql'; */ -$db_url = 'mysql://username:password@localhost/databasename'; +$db_url = 'database://username:password@localhost/databasename#mysql'; $db_prefix = ''; /**