PDO vs. MySQLi

02/15/2013 23:56 .Marcel'#1
Hallo Leute,

ich möchte gerne eine Diskussion starten mit euch, und zwar würde mich interessieren, was ihr bevorzugt, PDO oder doch MySQLi?

Was glaubt ihr, welcher der beiden wird sich in Zukunft durchsetzen?
02/16/2013 00:04 Synatex#2
Hey,

also ich persönlich habe beides genutzt gehabt, bin dann auf PDO umgestiegen. Warum? Man merkt als Entwickler dann doch das es nicht nur noch die schöne "MySQL" Datenbank gibt. Ich hatte nun schon auch einige male Kontakt mit MSSQL und hatte nicht immer Lust den Code doppelt und dreifach zu schreiben.

Aus diesem Grund bin ich dann zu PDO gewechselt und dort hängen geblieben. Was zukunftsorientiert beachtet werden sollte ist auch das MySQL nunmal von Oracle übernommen wurde - was nichts heißen muss, aber früher oder später nur in den Business-Versionen noch produktiv einsetzbar wird. Mit PDO ist das halt einmal Code und bis auf ein bis zwei Migrationsprobleme hatte ich bei einem wechsel von MSSQL - MYSQL - POSTGRESQL fast keine Probleme.

Wenn man sich jetzt auch noch den Start von MariaDB ansieht und ich weiß nicht ob es PDO bereits tut, aber Support für NoSQL anbietet, dann wäre das ganze perfekt und fast wirklich universell einsetzbar.

Das einzige was ich an PDO halt nicht so gut finde ist das viele die prepared Statements dafür verwenden um das ganze einfacher zu escapen. Es ist letztendlich ein unnötiger Schritt der gemacht wird, das zwischenspeichern, wenn es doch nur ein Query gibt. Da sollten die eventuell mal das auto-escape für die Query() Funktion mit einbauen. Dann wäre es perfekt!

Schönen Abend noch.
02/17/2013 20:24 PseudoPsycho#3
Ich halte einen Kommentar auf [Only registered and activated users can see links. Click Here To Register...] für passend:
Quote:
Apart from the feature list, I suggest you try out both MySQLi and PDO and find out what API design you like most. MySQLi is more powerful and probably more complex to learn. PDO is more elegant and has the advantage that you only need to learn one PHP API if you need to work with different DBMS in the future.
Ich persönlich arbeite für gewöhnlich mit MySQLi. Bei normalen Projekten weiß ich schließlich schon im Voraus, welche Datenbank-Art ich verwenden will. Und das ist für gewöhnlich nunmal MySQL.
Ausnahme davon sind OpenSource-Projekte. Bei diesen ist eine plattform-unabhängige Lösung erstrebenswert, sodass ich dort lieber PDO verwende.
02/17/2013 22:35 dowhile#4
Auch wenn das nicht zur Auswahl steht: Ich nutze doctrine: [Only registered and activated users can see links. Click Here To Register...]

Das ist sehr komfortabel und vollständig unabhängig von der eingesetzten Datenbank.
02/18/2013 22:03 ExChill#5
Habe vor einiger Zeit mit HTML / PHP angefangen. Bin jetzt bei Datenbanken angekommen und benutze zum testen zurzeit noch MySQL.
Was würdet ihr mir empfehlen zu lernen?
02/18/2013 22:51 Synatex#6
Wie du siehst hat jeder seine eigenen Ansichtsweisen.. Es gibt in dem Fall kein richtig oder falsch, du musst dir selbst Gedanken machen was für dich das beste ist.
02/18/2013 23:11 ExChill#7
Ok, werde mir morgen mal einiges dazu durchlesen.
Nur noch eine Frage zum Verständnis.
Die Datenbank selbst ist immer noch MySQL, nur das Zugriffsverfahren ist PDO bzw. MySQLi?
02/18/2013 23:16 .Marcel'#8
Quote:
Originally Posted by ExChill View Post
Ok, werde mir morgen mal einiges dazu durchlesen.
Nur noch eine Frage zum Verständnis.
Die Datenbank selbst ist immer noch MySQL, nur das Zugriffsverfahren ist PDO bzw. MySQLi?
Ich zitiere mal zum Verständnis:

Quote:
PDO stellt eine Abstraktionsebene für den Datenbankzugriff dar, damit ist man mit PDO nicht auf eine spezifische Datenbank angewiesen, sondern kann nahezu problemlos mit jeder Datenbank arbeiten.
Quote:
PDO stellt wie erwähnt eine Abstraktionsebene für Datenbankzugriffe dar, deswegen kann PDO für jede Datenbank verwendet werden, für die es entsprechende Treiber gibt. Um die vorhanden Treiber unter PHP auszugeben reicht folgender Befehl.
PHP Code:
print_r(PDO::getAvailableDrivers()); 
Quelle: [Only registered and activated users can see links. Click Here To Register...]

Kurz: PDO unterstützt z.B MSSQL, MySQL, SQLite uvm.