Существует понятие СУБД - система управления базами данных. Это программный интерфейс, который обслуживает и манипулирует данными. Каждая СУБД делает это по своему. Механизмы хранения данных у различных СУБД, а также методы операций могут отличаться. Существует ещё одно понятие SQL - это формальный язык программирования, с помощью которого оператор манипулирует данными. Дело в том, что помимо технических различий существует также различия синтаксиса языка запросов, некоторые возможности доступны в одной СУБД и не доступны в другой.
PHP осуществляет взаимодействие с СУБД при помощи модулей. Так, например, есть модули mod_mysql, mod_mysqli, mod_pdo. Все эти модули (или драйвера) выполняют одну и ту же функцию, за исключением следующих особенностей:
- Модуль MySQL устарел, и его использование не рекомендуется в целях безопасности. Использование MySQL оправдано только в целях поддержки обратной совместимости.
- Модуль MySQLi (improved MySQL) - это современный модуль для взаимодействия с СУБД MySQL.
- Модуль PDO - это абстракционный слой, позволяющий, в отличие от модулей MySQL и MySQLi, взаимодействовать не только с СУБД MySQL, но и с другими СУБД, такими как: sqlite, oracle, postgresql. Он позволяет переключиться с одной СУБД на другую не меняя синтаксис запросов и процедур.
- Модули MySQL и MySQLi предназначены для взаимодействия только с СУБД MySQL.
На 99% всех Joomla! сайтов используется СУБД MySQL, которая работает на драйвере MySQLi. Если вы не понимаете, зачем вам может быть нужен PDO, не следует устанавливать его в качестве драйвера, так как преимуществ вы не получите никаких, а функционал будет одинаковым, поэтому выбирать следует MySQLi (самый быстрый из всех доступных)