phpbar.de logo

Mailinglisten-Archive

[php] schnellster Datenbank-Layer

[php] schnellster Datenbank-Layer

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Don Mar 29 08:08:22 CEST 2007


Hallo Norbert,

Am Donnerstag, 29. März 2007 02:08 schrieb Norbert Pfeiffer:
> Ein komfortabler Layer erkennt den Typ des Querys und liefert
> je nach dem 'affected rows' oder 'insert id' zurueck, wenn es
> denn so passt.
>
> Wie man aus einem Vortrag der Koelner UG hoeren musste, leistet
> PDO dies absolut nicht.

Es ist ja auch nicht das Ziel von PDO eine komplette Abstraktionsschicht 
zu sein! :-) Siehe Handbuch:

"PDO bietet eine Abstraktionsschicht für den Datenzugriff, das bedeutet, 
dass Sie, egal welche Datenbank Sie benutzen, dieselben Funktionen 
verwenden können, um Abfragen zu erstellen und Daten zu lesen. PDO 
bietet keine Abstraktion für Datenbanken. Es schreibt keine 
SQL-Abfragen um oder emuliert fehlende Features. Sie sollten eine 
komplette Abstraktionsschicht verwenden, wenn Sie diese Funktionalität 
benötigen."

> Im Grunde setzt PDO nur die Funktionen 
> fast 1:1 um ohne einen Vorteil fuer den Programmierer zu liefern.

Selbstverständlich liefert PDO einen Vorteil, nämlich die Verwendung 
datenbankunabhängiger Funktionen und eine einheitliche Implementierung 
des Datenbankzugriffs. Damit mußt Du z.B. nicht die Funktions- bzw. 
Methodennamen austauschen und Codefragmente umschreiben, wenn Du einmal 
die Datenbank darunter wechseln solltest, z.B. von MySQL zu PostgreSQL. 
Für mich könnte PDO z.B. in naher Zukunft einmal interessant werden, 
weil es sein könnte, daß ich im Intranet mit einer Oracle-Datenbank 
arbeite und im Internet mit einer MySQL-Datenbank. Da ist soetwas wie 
PDO doch ideal.

Darüber hinaus gibt es noch weitere Gründe, warum es PDO gibt bzw. warum 
man es verwenden könnte. Siehe z.B. hier:

http://www.oracle.com/technology/pub/articles/php_experts/otn_pdo_oracle5.html

> Oops, PDO macht den Unfug natuerlich in OO, dann isses natuerlich
> richtungsweisend ... ;-)

Ich weiß immer noch nicht, was Du gegen OOP hast, aber wer OOP will, 
kann das auch mit mysqli haben, wenn es um MySQL-Datenbanken geht, was 
in der Regel der Fall ist. ;-)

> Die Diskussion ob man nun while oder foreach verwenden soll/kann
> interessiert den PHP-Entwickler nicht wirklich, ausser er schreibt
> gerade seinen privaten DB-Layer ... ;-)

Wenn Du darauf angewiesen bist, Deine Rechnerresourcen nicht zu 
verschwenden, weil Du viel Zugriffe auf Deine Website hast, ist es mit 
Sicherheit immer interessant, den schnellsten Weg zu finden. Da ist 
eine Diskussion while oder foreach mit Sicherheit nicht uninteressant. 
Meine persönliche Meinung. :-)

Viele Grüße
Lutz

php::bar PHP Wiki   -   Listenarchive