Если вы хотите получить доступ к таблицам той же базы данных, в которую установлена Joomla!, вы можете просто использовать метод JFactory::getDbo(). А если возникла необходимость в подключении к внешней базе данных из Joomla? Это может быть другая база данных на этом же сервере или вообще на другом сервере, и возможно с другим драйвером базы данных. Вы можете сделать это с помощью метода JDatabase::getInstance().
Рассмотрим пример кода:
Теперь $db стал объектом типа JDatabase и вы можете выполнять базовые операции, используя привычные вам методы.
Обратите внимание на то, что если база данных использует нестандартный порт для соединения, то вы можете указать его в параметре hostname, например db.host.ru:3307.
Другой интересной особенностью использования JDatabase::getInstance() является то, что если вызвать его с такими же параметрами, то метод вернет ранее созданный объект, а не новый. Но параметры должны в точности совпадать. Например, если вы сначала сделали вызов, используя параметр db.host.ru:3306, а затем, используя параметр db.host.ru, будет сделано два разных соединения, несмотря на то, что MySQL использует порт 3306 по умолчанию и эти параметры логически одинаковы.