Op het basisniveau beantwoorden de mysql-, mysqli- en PDO-extensies allemaal de vraag hoe praat ik met de database? Ze bieden allemaal functies en functionaliteit om verbinding te maken met een database en er gegevens uit te verzenden en op te halen. Je kunt ze allemaal tegelijk gebruiken om meerdere verbindingen met de database tegelijk te maken, maar dat is meestal onzin.
mysql* is een zeer eenvoudige extensie waarmee u in principe verbinding kunt maken met de database, deze SQL-query's kunt verzenden en niet veel anders.
mysqli verbetert dit (zoals de naam al doet vermoeden) door geparameteriseerde query's en een paar andere dingen toe te voegen aan de mix.
PDO is een extensie die verschillende databasestuurprogramma's in één pakket samenvoegt, d.w.z. het stelt u in staat dezelfde code te gebruiken om verbinding te maken met MySQL, Oracle, MS SQL Server en een aantal andere databases zonder dat u databasespecifieke hoeft te gebruiken extensies of herschrijf uw code wanneer u van database wisselt (in theorie tenminste). Het ondersteunt ook geparametriseerde zoekopdrachten.
Als je weet dat je exclusief MySQL gaat gebruiken, is mysqli een goede keuze. Vooral omdat je het procedureel kunt gebruiken, wat je al gewend bent van de mysql-extensie. Als je niet bekend bent met OOP, is dat handig. Verder is PDO een mooie objectgeoriënteerde, flexibele databaseconnector.
* Merk op dat de mysql-extensie nu verouderd en zal ergens in de toekomst worden verwijderd . Dat komt omdat het oud is, vol slechte praktijken en een aantal moderne functies mist. Gebruik het niet om nieuwe code te schrijven.