Markus: PHP-Schnittstellen zu Datenbanken

Hallo zusammen,

kennt jemand zufällig eine Sammlung von PHP-Skripten, welche es einem ermöglicht, Daten von einer Datenbanken zu erhalten ohne deren Typ zu kennen?

Das heißt, ich würde gerne eine Funktion aufrufen, mit verschiedenen Parametern, welche sich innerhalb eines "Interface"-Skripts befindet und diese würde die Befehle gemäß des verwendeten Datenbanktyps (MySQL, PostgreSQL,...) übersetzen.

Z.B.
data = array();
data = databaseInterface:getDataFromDatabase(SELECT,FROM,WHERE);

So in dieser Art oder ähnlich?!

Danke schon einmal im voraus!

  1. Hallo,

    kennt jemand zufällig eine Sammlung von PHP-Skripten, welche es einem ermöglicht, Daten von einer Datenbanken zu erhalten ohne deren Typ zu kennen?

    Den Typ der Datenbank mußt du diesen 'abstraction layers' schon mitteilen, das
    dafür aber nur einmal im Script. Dannach kannst du sö ähnlich weiterarbeiten,
    wie du dir das vorstellst. Bei der Umstellung auf ein anderes DBMS genügt es
    dann idealerweise eine Zeile zu ändern.

    Schau dir z.B. mal http://pear.php.net/package/DB an.

    Gruß, Jan

    1. Hallo Jan,

      ja genau, so habe ich mir das vorgestellt, den Datenbanktyp angeben und sonst nichts ändern müssen am PHP-Code.

      Danke für die schnelle Hilfe...

      1. ja genau, so habe ich mir das vorgestellt, den Datenbanktyp angeben und sonst nichts ändern müssen am PHP-Code.

        Beachte, dass das aber noch nicht alles ist. Du musst dann auch konsequent vermeiden datenbankspezifische Befehle/Funktionen in den Abfragen zu nutzen.

        Ein
        SELECT CONCAT_WS(' ', Nachname, Vorname) FROM ...
        beispielsweise kannst du zwar an alle unterstützten DB's via PEAR-DB senden, nur wirst du da nicht immer Glück haben.

        Außerdem gibt es einige Funktionalitäten, die in den DBs unterschiedlich gelöst sind.

        In MySQL kann man auto_increment-Felder verwenden. Für Oracle nimmt man da Sequenzen.
        PEAR_DB löst das in dem Fall so, dass es das Sequenz-Konzept unter MySQL mit einer eigenen Hilfstabelle für jede einzelne Sequenz nachbildet.

        1. Ich habe mich bisher zwar noch nicht so sehr mit Datenbanken beschäftigt als dass ich nun einen Kommentar / Bewertung zu dem Beitrag zuvor abgeben könnte, aber ich denke dass es für ein wenig Daten einer Website reichen wird, mit den Standardfuncktionen auszukommen... und dafür werde ich wohl kaum Oracle benutzen, jedoch vielleicht PostgreSql, MySQL oder vielleicht auch SQLite.

          Aber danke für den Hinweis und falls ich mal drüber stolpern sollte, weiß ich ja jetzt, wo ich den Hinweis finde!