shordy: PDO und Sqlite - Aller Anfang ist schwer

Beitrag lesen

Hallo und vielen vielen DAnk für die Antwort.

Damit begrenzt du (oder erweiterst) dich auf den Funktionsumfang von PDO. Eine Interoperabilitiät zu anderen DBMSen bekommt man damit aber kaum, weil jedes System immer noch seinen eigenen SQL-Dialekt spricht.

NAja, ich möchte diese Datenbanken in SQLite belassen, falls Du ein späteres Ändern zu z.B. MySQL meinst. Hätte mich auch mit zB adoDB beschäftig, was allerdings ein bisschen langsamer sein soll, weil eben nicht in php integriert, sondern aufgesetzt.

Die Frage, die ich jetzt konkret habe, ist: wie kann ich mit $BLA = new PDO("sqlite: pfad"); verhindern, dass eine neue Datenbank angelegt, wenn sie nicht vorhanden ist. Ich möchte nicht ein file-exists davor bauen. Ich suche nach etwas wie: ist die Datenbank mit der SQLite-Struktur vorhanden, dann öffne sie, ansonsten gib eine Exception zurück, oder so.

Das geht meines Erachtens nur mit dem nativen Treiber, dessen Konstruktor kennt entsprechende Flags. Der PDO-Konstruktor kennt $driver_options, aber da im SQLite-Teil keine beschrieben sind, wird es keine geben, die man verwenden kann.

Alternativ, ohne file_exists() zu verwenden, bleibt wohl nur, das Verzeichnis ohne Schreibrecht für den PHP-Prozess zu konfigurieren. Dann kann der darin keine Dateien anlegen, wohl aber vorhandene bearbeiten (wenn diese beschreibbar sind).

Schade. Das ist etwas unbefriedigend. Aber gut. Meinst Du mit nativer Variante die Funktion sqlite_open() und $error_message, die ich dann abfragen muss?

Liebe Grüße

Lo!