Avatar billede showsource Seniormester
23. juli 2008 - 07:01 Der er 16 kommentarer og
2 løsninger

Forskel på PDO og Mysqli

Er det egentlig ikke to sider af samme sag?
Omend Mysqli er "letvægt"
Avatar billede jakobdo Ekspert
23. juli 2008 - 07:53 #1
Uden at ane en dyt om det, gætter jeg på følgende:

mysqli er ren mysql.
PDO er niveauet over, noget ala ODBC.
Avatar billede showsource Seniormester
23. juli 2008 - 08:02 #2
Jow, mysqli er Mysql
Og PDO kan bruges til flere forskellige DB's, uden at ændre i din kode. ( Andet end valg af driver )

Men tænkte, principperne er vel de samme ?
Avatar billede erikjacobsen Ekspert
23. juli 2008 - 09:47 #3
Dertil kommer at man kan sætte PDO til at kaste exceptions ved fejl - sådan som det bør være ... aldrig mere  " ... or die(....)" spredt ud over det hele.
Avatar billede coderdk Praktikant
23. juli 2008 - 10:05 #4
mysqli kan også kaste exceptions, hvis du bruger MYSQLI_REPORT_STRICT
Avatar billede janpolsen Nybegynder
23. juli 2008 - 10:28 #5
PDO er et framework til databaser. Hvis du er ude i at skulle bruge et framework, så kan jeg anbefale http://phplens.com/adodb/ :)
Avatar billede showsource Seniormester
23. juli 2008 - 12:48 #6
Jeg står ikke og "skal bruge" noget, men er ved at lægge min måde at kode om til prepared statements, og tænkte først på mysqli, men tror nu at det skal være PDO.

Kan mysqli iøvrigt bruges til "Transactions" ?
Avatar billede jakobdo Ekspert
23. juli 2008 - 12:59 #7
transactions afhænger vel af selve databasen.
Avatar billede showsource Seniormester
23. juli 2008 - 13:07 #8
Aha, men så vidt jeg forstår, kan en "standard" mysql_query() ikke udnytte brugen transactions.
Avatar billede coderdk Praktikant
23. juli 2008 - 13:15 #9
Ja, mysqli understøtter transactions såfremt databasen gør det ;)
Avatar billede coderdk Praktikant
23. juli 2008 - 13:18 #10
og jo, mysql_query understøtter også transactions, da det jo bare er statements, som:

BEGIN
UPDATE tabel SET tal = tal + 1 WHERE id = 1
SELECT * FROM tabel WHERE id = 1 (denne viser tal er steget med 1)
ROLLBACK
SELECT * FROM tabel WHERE id = 1 (denne viser tal er tilbage til det gamle)
UPDATE tabel SET tal = tal + 1 WHERE id = 1
COMMIT
Avatar billede janpolsen Nybegynder
23. juli 2008 - 13:56 #11
Jeg vil anbefale dig ikke at lægge dig fast på mysqli. Om et år eller to, så kommer der måske nye funktioner som hedder mysqli2_* eller lignenden og så skal alt rettes til.

At framework kan spare dig for meget arbejde hvis dette sker... også  hvis det lige pludselig skal kører på f.eks. postgres i stedet for mysql.

Såeh... brug som minimum PDO eller som ovenfor nævnt adodb, som bare kan det hele :)
Avatar billede showsource Seniormester
23. juli 2008 - 18:00 #12
Ahh, endnu en dag hvor jeg blev lidt klogere. !
Og smid nu et svar allesammen, så der kan lukkes.

( Og janpolsen, jeg vil selv lege, ikke bruge noget færdigt lavet. )
Avatar billede jakobdo Ekspert
23. juli 2008 - 18:21 #13
Jeg springer over...
Avatar billede showsource Seniormester
01. august 2008 - 20:12 #14
Nogen som vil smide et svar?
Avatar billede jakobdo Ekspert
01. august 2008 - 22:51 #15
erikjacobsen samler ikke på point.
Så vi venter på coderdk og janpolsen.
Avatar billede janpolsen Nybegynder
02. august 2008 - 00:07 #16
Jeg synes ikke jeg hjalp med noget som sådan, men hvis du absolut vil af med point :).
Avatar billede coderdk Praktikant
02. august 2008 - 12:09 #17
:)
Avatar billede showsource Seniormester
07. august 2008 - 08:12 #18
Takker for input !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Ingeniør til Satellitkommunikation

Netcompany A/S

Test Consultant

Netcompany A/S

Linux Operations Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Sektionschef til Cyber Security Guidance ved Cyberdivisionen i Forsvaret