På det grundlæggende niveau besvarer mysql-, mysqli- og PDO-udvidelserne alle spørgsmålet hvordan taler jeg med databasen? De giver alle funktioner og funktionalitet til at oprette forbindelse til en database og sende og hente data fra den. Du kan bruge dem alle på samme tid til at etablere flere forbindelser til databasen på én gang, men det er typisk noget sludder.
mysql* er en meget simpel udvidelse, der grundlæggende giver dig mulighed for at oprette forbindelse til databasen, sende den SQL-forespørgsler og ikke meget andet.
mysqli forbedrer dette (som navnet antyder) ved at tilføje parameteriserede forespørgsler og et par andre ting i mix.
PDO er en udvidelse, der abstraherer flere databasedrivere i én pakke, dvs. den giver dig mulighed for at bruge den samme kode til at oprette forbindelse til MySQL, Oracle, MS SQL Server og en række andre databaser uden at skulle bruge databasespecifikke udvidelser eller omskriv din kode, når du skifter database (i hvert fald i teorien). Det understøtter også parametriserede forespørgsler.
Hvis du ved, at du udelukkende kommer til at bruge MySQL, er mysqli et godt valg. Især da du kan bruge det på en proceduremæssig måde, hvad du allerede er vant til fra mysql-udvidelsen. Hvis du ikke er bekendt med OOP, er det nyttigt. Ellers er PDO en fin objektorienteret, fleksibel databaseforbindelse.
* Bemærk, at mysql-udvidelsen nu er udfaset> og vil blive fjernet engang i fremtiden . Det er fordi den er gammel, fuld af dårlig praksis og mangler nogle moderne funktioner. Brug det ikke til at skrive ny kode.