Flash: OOP Datenbankklassen

Hallo Leute!

Bis jetzt habe ich immer die MYSQLi Klasse zum ansprechen von der Mysql Datenbank genommen.

Angeblich soll aber PDO neuer und besser in der Hinsicht sein, dass man auch andere Datenbank-Engines ansprechen kann wie Oracle.

Kenn jemand von euch gute Tutorials?
Irgendwie finde ich nicht sonderbar was brauchbares bei Google.

Welche OOP Klasse nehmt ihr eigentlich ? MYSQLi oder PDO?

Besten Dank
Flash

  1. Hallo,

    Kenn jemand von euch gute Tutorials?
    Irgendwie finde ich nicht sonderbar was brauchbares bei Google.

    Sicher, dass du gesucht hast?

    Grüße

  2. Hi!

    Bis jetzt habe ich immer die MYSQLi Klasse zum ansprechen von der Mysql Datenbank genommen.
    Angeblich soll aber PDO neuer und besser in der Hinsicht sein, dass man auch andere Datenbank-Engines ansprechen kann wie Oracle.

    Was ist dein Eindruck, wenn du beide miteinander vergleichst? Welches fühlt sich für dich besser an? Du musst da schon selbst Vergleiche anstellen, um festzustellen, was dir persönlich mehr zusagt.

    Welche OOP Klasse nehmt ihr eigentlich ? MYSQLi oder PDO?

    mysqli, weil ich die Eigenschaften von PDO nicht brauche. Allerdings ist manches anwenderfeundlicher gelöst als bei mysqli, zum Beispiel die Rückgabe der Fetch-Ergebnisse, besonders bei Prepared Statements. Generell möchte PDO eine einheitliche Schnittstelle zu allen unterstützten DBMS bieten. Die nativen Schnittstellen zu den anderen DBMS sind teilweise deutlich weniger ausgebaut als mysql und mysqli. Eine native Schnittstelle hat zwar immer Unterschiede in der Bedienung im Vergleich zu anderen Systemen, aber auch den Vorteil, exakt auf das jeweilige System eingehen zu können.

    Manche Features der DBMSe sind deutlich voneinander verschieden. Beispielsweise machen die einen auto_increment und bei anderen musst du Sequenzen bemühen, die aber ihrerseits leistungsfähiger als auto_increment sind. Unterschiedlich ist auf alle Fälle der Weg, an den erzeugten Wert zu kommen, so man ihn benötigt. Das kann auch eine Abstraktionsschicht wie PDO nicht völlig vereinheitlichen. Was sie jedoch generell nicht egalisieren kann, sind die Unterschiede in der Syntax des jeweiligen SQL-Dialekts. Wenn man das DBMS wechseln muss, sollte man nicht zwangsläufig davon ausgehen, dass ein Umschreiben des DSN/Connection-String genügt, um nahtlos mit einem anderen System weiterarbeiten zu können. Man muss die Datenbankabfragen also mit mehr oder weniger Aufwand an das andere DBMS anpassen. Und da muss man sehen, ob nicht die Vorteile einer nativen Schnittstelle größer sind als die Differenz zwischen dem Aufwand beim Umschreiben innerhalb PDOs und beim Umschreiben auf eine andere native Schnittstelle. Hinzu kommt, dass auch PDO dir nicht das generelle Kennenlernen und Erfahrungsammeln beim Einarbeiten in das neue System abnehmen kann.

    Lo!