На основно ниво разширенията mysql, mysqli и PDO отговарят на въпроса как да говоря с базата данни? Всички те предоставят функции и функционалност за свързване към база данни и изпращане и извличане на данни от нея. Можете да ги използвате всички едновременно, като установявате няколко връзки към базата данни наведнъж, но това обикновено е глупост.
mysql* е много просто разширение, което основно ви позволява да се свързвате с базата данни, да й изпращате SQL заявки и не много друго.
mysqli подобрява това (както подсказва името), като добавя параметризирани заявки и няколко други неща в mix.
PDO е разширение, което абстрахира няколко драйвера за база данни в един пакет, т.е. позволява ви да използвате един и същ код за свързване към MySQL, Oracle, MS SQL Server и редица други бази данни, без да е необходимо да използвате специфични за базата данни разширения или пренапишете кода си, когато превключвате бази данни (поне на теория). Той също така поддържа параметризирани заявки.
Ако знаете, че ще използвате изключително MySQL, mysqli е добър избор. Особено след като можете да го използвате по процедурен начин, това, с което вече сте свикнали от разширението на mysql. Ако не сте запознати с OOP, това е полезно. В противен случай PDO е приятен обектно ориентиран, гъвкав конектор за база данни.
* Имайте предвид, че разширението на mysql сега е остаряло и ще бъде премахнат някъде в бъдеще . Това е така, защото е древен, пълен с лоши практики и му липсват някои съвременни функции. Не го използвайте, за да пишете нов код.