PDO im Überblick

Halpha

Erfahrenes Mitglied
Hallo, wollte einmal nachfragen ob jemand Erfahrung mit PDO hat.

Ich nutze PDO als Schnittstelle zwischen PHP und meiner SQL Datenbank schon lange und finde es sehr super. Vorallem der Sicherheitsfaktor ist halt enorm hoch gesetzt durch die Tatsache, dass keine SQL Injections möglich sind.

Hier möchte ich dann so eine kleine Liste mit Vor und Nachteilen erstellen. Und kann mir jemand sagen wieso PDO so wenig Leute nutzen?

Vorteile:
- Keine SQL Injections möglich
- Einfachere Handhabung (meiner meinung nach)
- Ist kompatibel zu mehr Datenbankarten

Nachteile:
- Von der Allgemeinheit nicht so oft genutzt.
- Langsamer als MYSQL(wieviel werde ich noch testen)
 
Zuletzt bearbeitet:
Warum sollte PDO nicht so oft genutzt werden?

Seit PHP 5.3 setzt auch PDO auf den nativen MySQL Treiber und ist somit im gleichen Performancerahmen wie MySQLi.
Ich nutze PDO eigentlich bei jedem größeren Projekt, bei dem ich selbst an die Datenbank muss.
 
weil ich eigentlich sehr selbsten auf Leute treffe die überhaupt mit PDO arbeiten.

Muss man sich ja nur hier im Formum posts über php und Datenbanken anschauen. MYSQL soweit das Auge reicht;)
 
Das liegt daran, dass die meisten die hier eine Frage stellen Anfänger in der Programmierung mit PHP und Datenbanken sind und da ist MySQL das am einfachsten zu erlernende und wird auch in den meisten Büchern bzw. Tutorials "beigebracht".

Wenn man sich dann weiter mit der Entwicklung von Applikationen beschäftigt, wendet man sich eventuell der OOP Variante von MySQLi zu und wechselt dann dorthin...
Und irgendwann wird man auch mal realisieren, dass es neben MySQL auch noch andere Datenbanken gibt und weil man nicht für alles selber was basteln möchte, wendet man sich dann eventuell zu PDO oder einem anderen Wrapper zu.
 
gut haben wir wieder einen Vorteil den ich vergessen hab zu erwähnen: kann für mehr Datenbankarten verwendet werden;)

Mehr Vor und Nachteile bitte :D
 
Ein weiterer Nachteil ist, dass PDO nie so schnell sein wird wie MySQLi, eben weil es ein Abstraktionslayer ist.
D. h. es ist "massiver" als ein einzelner Wrapper.

Auch wenn es mehrere Datenbanken unterstützt, ist es keine volle Abstraktion. Man muss immer noch die jeweilige SQL Syntax der einzelnen Datenbanken beachten und dort auf eventuelle Unterschiede achten.

Auch wenn PDO Prepared Statements unterstützt und es somit standardmäßig gewisse Dinge maskiert, ist es immer noch wichtig die einkommenden Daten zu validieren!
D. h. Integers casten und Strings prüfen, z. b. mit den ctype Funktionen.

In richtig großen Anwendungen würde ich gar nicht mehr auf PDO setzen, sondern einen vollen OOP Ansatz wählen, z. B. ein ORM, in PHP gibt es dafür z. B. Doctrine.
 
ich muss zugeben mit Doctrine hab ich selbst noch nichts gemacht. Aber das werd ich mir jetzt gleich mal angucken.

Natürlich hast du damit recht dass es nicht 100 % so schnell sein kann, aber wieviel das ausmacht ist auch fraglich. Müsste man mal testen. Eventuell mach ich das mal dass ich da einen Zeittest bastle.
 
Zurück