20a21,76
> 	// If the database URL is a string, we have a single database to back up.
> 	// If it's an array, back up each database listed in the array.
> 	// If neither, return an error.
> 
> 	$databases = array();	
> 	if (is_array($GLOBALS["db_url"])) {
> 		$databases = $GLOBALS["db_url"];
> 	} else {
> 		if (is_string($GLOBALS["db_url"])) {
> 			$databases['default'] = $GLOBALS["db_url"];
> 		} else {
> 			$error = "Global db_url is neither a string nor an array.";
> 			return $error;
> 		}
> 	}
> 
> 	// Back up each database into its own file, using the db name to
> 	// differentiate file names.
> 
> 	$db_file = array();
> 	$errors = array();
> 	foreach ($databases as $db_name => $db_url) {
> 		$error = backup_single_database($db_file_name, $prefix_dir, $db_name, rawurldecode($db_url));
> 		if (is_null($error)) {
> 			$db_file[] = $db_file_name;
> 		} else {
> 			$errors[] = $error;
> 		}
> 	}
> 
> 	// If any errors, concatenate them.  Else, return null.
> 
> 	if (count($errors) > 0) {
> 		return implode("<br>", $errors);
> 	} else {
> 		return(null);
> 	}
> 
> } // End of backup_database() 
> 
> /**
> * Backs up a single database.
> *
> * @param string $db_file This is set to the name of the file which holds
> *	the database.
> *
> * @param string $prefix_dir The directory name to prefix to the backup.
> *
> * @param string $db_name The name of the database, which is made part of 
> *  the backup file name.
> * 
> * @return mixed NULL is returned on success.  Otherwise an error is returned.
> */
> 
> function backup_single_database(&$db_file_name, $prefix_dir = "", $db_name = "", $db_url) {
> 
25c81
< 	$db_data = parse_url($GLOBALS["db_url"]);
---
> 	$db_data = parse_url($db_url);
31c87
< 	$db_file_tmp = tempnam("/tmp", "drupal-backup-db-");
---
> 	$db_file_tmp = tempnam("/tmp", "drupal-backup-db-" . $db_name);
43c99
< 	$db_file = "drupal-backup-db-" . $date_string 
---
> 	$db_file_name = "drupal-backup-db-" . $db_name . "-" . $date_string 
82,83c138,139
< 	if (!rename($db_file_tmp, $db_file)) {
< 		$error = "Renaming file '$db_file_tmp' to '$db_file' failed";
---
> 	if (!rename($db_file_tmp, $db_file_name)) {
> 		$error = "Renaming file '$db_file_tmp' to '$db_file_name' failed";
90c146
< } // End of backup_database() 
---
> } // End of backup_single_database() 
211c267,268
< 	$file_list .= $parent_dir . $db_file;
---
> 	//$file_list .= $parent_dir . $db_file;
> 	$file_list .= $parent_dir . implode(" " . $parent_dir, $db_file);
297,299c354,358
< 	if (!unlink($db_file)) {
< 		$error = "Unable to delete file '$db_file'";
< 		return($error);
---
> 	foreach ($db_file as $db_file_name) {
> 		if (!unlink($db_file_name)) {
> 			$error = "Unable to delete file '$db_file_name'";
> 			return($error);
> 		}
