? joomla-539658.patch
Index: joomla.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/joomla/joomla.module,v
retrieving revision 1.16.2.10
diff -u -p -r1.16.2.10 joomla.module
--- joomla.module	29 Jul 2009 09:40:12 -0000	1.16.2.10
+++ joomla.module	5 Aug 2009 10:23:42 -0000
@@ -929,7 +929,14 @@ function joomla_database_init() {
   global $db_url;
   
   if (!is_array($db_url) || empty($db_url['joomla'])) {
-    $joomla_url = sprintf('mysql://%s:%s@%s:%d/%s', variable_get('joomla_database_user', JOOMLA_DATABASE_USER), variable_get('joomla_database_pass', JOOMLA_DATABASE_PASS), variable_get('joomla_database_host', JOOMLA_DATABASE_HOST), variable_get('joomla_database_port', JOOMLA_DATABASE_PORT), variable_get('joomla_database_name', JOOMLA_DATABASE_NAME));
+
+    /**
+     * It's not possible to use a combination of database engines, e.g.
+     * mysql and mysqli, at the same time.  So, determine which one is
+     * in use on the Drupal site and use it for the Joomla connection
+     */
+    $engine = substr($db_url, 0, strpos($db_url, ':')); // same engine for two db: Drupal's limit
+    $joomla_url = sprintf('%s://%s:%s@%s:%d/%s', $engine, variable_get('joomla_database_user', JOOMLA_DATABASE_USER), variable_get('joomla_database_pass', JOOMLA_DATABASE_PASS), variable_get('joomla_database_host', JOOMLA_DATABASE_HOST), variable_get('joomla_database_port', JOOMLA_DATABASE_PORT), variable_get('joomla_database_name', JOOMLA_DATABASE_NAME));
 
     $db_url = array(
       'default' => $db_url,
