MySQL, MySQLi eller PDO

Her kan du få hjælp og stille spørgsmål til MySQL/MySQLi!
Besvar
MacXGaming
Begynder
Indlæg: 4
Tilmeldt: 7. jan 2015, 09:45

MySQL, MySQLi eller PDO

Indlæg af MacXGaming » 7. jan 2015, 09:55

Jeg har brugt alle de 3-4 år jeg har programmeret.
Men nu er der jo kommet lidt flere, MySQLi og PDO.

Så jeg ville gerne høre, behøver jeg at skifte? Hvis ja, hvad burde jeg skifte til?

Er der overhovedet nogle forskelle sådan rigtigt på de forskellige?

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg: 1528
Tilmeldt: 28. dec 2010, 10:49

Re: MySQL, MySQLi eller PDO

Indlæg af ThomasI » 7. jan 2015, 20:13

Prøv at se serierne her på NemProgrammering.dk - så vil du hurtigt se at PDO og MySQLi faktisk ligner hinanden rigtig meget.

Ellers ville jeg nok hoppe på MySQLi - det virker til at det er det de fleste bruger, og dermed er det også nemmere at finde hjælp til det rundt omkring, hvis du skulle komme i problemer :)

MacXGaming
Begynder
Indlæg: 4
Tilmeldt: 7. jan 2015, 09:45

Re: MySQL, MySQLi eller PDO

Indlæg af MacXGaming » 7. jan 2015, 20:46

Men er det virkelig bedre end MySQL?

Jepsen
Begynder
Indlæg: 18
Tilmeldt: 8. jan 2015, 03:53

Re: MySQL, MySQLi eller PDO

Indlæg af Jepsen » 8. jan 2015, 04:07

MacXGaming skrev:Men er det virkelig bedre end MySQL?
Selvfølgelig er det bedre end MySQL. Det udgår jo af en årsag. Der er ikke blevet udviklet på MySQL bibliotektet i lang tid.

Hvorvidt du skifter til PDO eller MySQLi er såmænd helt op til dig. Jeg synes, at det er en smagssag såfremt du ikke har behov for at skifte mellem flere forskellige database-typer.
Jeg bruger selv PDO af den simple årsag, at hvis jeg skal til at skifte til en anden database, så kan jeg gøre det uden at ændre i koden.

Forskellen på de 3 API'er kan koges ned:

1) MySQL: Den gamle, og udgåede, version af API'et. Ikke udviklet, og følger derfor ikke med PHP. Chance for, at det bliver fjernet fuldstændig.
2) MySQLi: Det nye API, som i sin essens er bygget ovenpå det gamle API, dog med en del forbedringer af funktioner, performace o.lign. Du kan bruge både procedural samt OOP metoder.
3) PDO: Ikke et API til MySQL specifikt, men et generelt abstraktionslag til databaser. Dvs. det er ikke udviklet til MySQL, men understøtter det - ligesom det understøtter en masse andre forskellige database typer.

Vigtigt for både MySQLi og PDO er muligheden for prepared statements, som burde fjerne muligheden for SQLi (nok en ganske fin idé at escape alligevel).

Selve koden er noget, som man lige skal sættes sig ind i, men du kan skifte fra MySQL til MySQLi uden yderligere problemer. Der er lavet en masse forskellige tools til konvertering.

PDO er lidt vanskeligere, da du skal omstrukturere din kode, og ændre samtlige database-kald, da du ikke har en processuel grænseflade.
Så snart du har fået sat dig ind i PDO eller MySQLi kommer det hele ganske let.

Jeg plejer at kunne klare mig med en enkelt funktion i PDO, som står for alle kald til databasen, samt returnering af statements, som kræver en eller anden form for return.

Du kan se følgende link, som burde forklare forskellen:
http://www.nemprogrammering.dk/Tutorial ... li-PDO.php

Besvar