dedlfix: PDO und Sqlite - Aller Anfang ist schwer

Beitrag lesen

Hi!

Hallo, ich möchte nun kleine Datenbanken auf SQLite umstellen.
Dazu möchte ich PDO von php benutzen.

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.

Ich finde leider kein schönes Einführungstutorial. Wäre über einen Link dankbar. Ich bin gerade hier:
http://www.php.net/manual/de/pdo.connections.php,
aber mir fehlt irgendwie der Gesamtüberblick.

Du kannst da nur das allgemeine PDO-Kapitel nehmen und diese kleine DBMS-spezifische Ergänzung, um den Umgang mit PDO zu lernen. Informationen zum SQLite-spezifischen SQL müsstest du in Richtung SQLite-Dokumentation/-Tutorial suchen.

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).

Lo!