pdo en mysqli

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Soccertime website

soccertime website

11/02/2016 13:47:23
Quote Anchor link
ik volg nu verschillende tutorials en sommige gebruiken mysqli en andere pdo
zou je dit samen kunnen gebruiken in een website of moet je jezelf echt richten op een van de twee binnen een website
 
PHP hulp

PHP hulp

22/12/2024 15:29:51
 
Wouter J

Wouter J

11/02/2016 13:50:44
Quote Anchor link
Je kan ze samen gebruiken, wees vrij om elke class willekeurig aan te maken wanneer je wilt. Het is alleen de vraag waarom je dit zou willen. Het betekend namelijk 2 andere dingen (met dezelfde taak) onderhouden, 2 dingen leren, etc.
 
Randy vsf

Randy vsf

11/02/2016 13:51:07
Quote Anchor link
Heb je een reden om beide te gebruiken?
 
Soccertime website

soccertime website

11/02/2016 13:57:35
Quote Anchor link
de reden dat ik dit wil is dat tutorials die ik volg soms met mysqli zijn en soms met pdo en ik ben hier nog maar een beginner in dus ik wou even weten of dit kon

anders zou ik verdr gaan zoeken naar tutorials die allebei of in pdo of in mysqli zijn
Gewijzigd op 11/02/2016 13:58:09 door soccertime website
 
Randy vsf

Randy vsf

11/02/2016 14:01:51
Quote Anchor link
Het kan zeker, maar het is misschien verstandiger om met 1 te beginnen als je nog aan het leren bent.
 
Thomas van den Heuvel

Thomas van den Heuvel

11/02/2016 14:41:39
Quote Anchor link
Beide kiezen om te gebruiken in een website is het zelfde als niet kiezen (wat volgens sommigen ook een keuze is). Als je niet kunt onderbouwen waarom je beide nodig zou hebben, of als dit simpelweg niet het geval is, gebruik er dan één.

Je moet het zo zien:
PDO is niet geschreven voor een specifieke database (lees: en is dus ook niet op voorhand afgestemd en geoptimaliseerd voor het gebruik van een specifieke database). PDO heeft specifieke database-drivers, waaronder die voor MySQL: PDO_MYSQL.
MySQLi is specifiek geschreven (lees: en dus ook afgestemd en geoptimaliseerd) voor MySQL.

Vaak werd (wordt?) aangehaald dat PDO "beter" zou zijn omdat je deze voor meerdere database-typen kunt gebruiken, en MySQLi "slechts enkel voor MySQL". Dit onterechte argument werd (wordt?) keer op keer aangehaald als rechtvaardiging voor de keuze voor PDO over MySQLi.

Ook zou PDO makkelijker te leren zijn omdat je "voor alle databases dezelfde instructies kunt gebruiken" (de methoden die de PDO-klasses rijk zijn).

Laat je niet misleiden door deze onzin want het is gewoon niet waar.

In de levensloop van een applicatie zul je waarschijnlijk NOOIT vrij schakelen tussen verschillende database-typen (tenzij je ook echt werkt met verschillende databases van verschillende typen, maar nooit) "omdat het kan". Je hebt deze flexibiliteit dus ook niet nodig (en daarnaast zou het een exercitie in tijdsverspilling zijn).

Toegegeven, als je PDO gebruikt heb je een uniforme manier om met verschillende database-typen te communiceren, maar de SQL-code is vaak nog steeds specifiek of is in ieder geval niet (zomaar) vrij inzetbaar in (of uitwisselbaar tussen) verschillende databasetypen tenzij je bovenop PDO nog een abstractielaag bouwt die een cross-database-compatibiliteit implementeert.

Maar dit truukje (uniforme manier van aanspreken) kun je ook voor MySQLi zeer makkelijk uithalen door het schrijven van een eenvoudige wrapper, bijvoorbeeld als volgt.

Ook zit de leercurve helemaal niet in het handjevol instructies van PDO zelf, maar in een correct gebruik van de bijbehorende database-driver die je uiteindelijk gebruikt, PDO is dus geenszins "simpeler" dan MySQLi tenzij je niet verder kijkt dan je neus lang is.

Als je toch alleen maar MySQL(-databases) gebruikt, gebruik dan in eerste instantie gewoon MySQLi.

Anyway, ik heb hier al een keer eerder iets over geschreven.
Gewijzigd op 11/02/2016 14:51:35 door Thomas van den Heuvel
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.