2009-04-02 14 views
6

Es tut uns leid, wenn dies zu einfach ist.Zend Framework: Erste Schritte mit SQLite

Ich habe beschlossen, dass ich eine SQLite-Datenbank anstelle einer MySQL-Datenbank verwenden möchte. Ich versuche zu verstehen, wie einfach SQLite ist und möchte eine einfache, eine Antwort-Anleitung zur Verwendung von SQLite mit dem Zend Framework, wo ich meine SQLite-Datenbank in meine Verzeichnisstruktur einfügen kann, wie man die Datenbank erstellt, etc

Antwort

7

Wenn Sie eine Verbindung zu einer nicht vorhandenen Datenbank herstellen, wird eine Datenbank im laufenden Betrieb erstellt. (Sie können dieses Verhalten deaktivieren)

+0

wo wird es erstellt? – Andrew

+0

Dies ist die Website http://www.connectionstrings.com/sqlite, die den Verbindungsstring beschreibt. Die Datenquelle ist einfach der von Ihnen angegebene Dateiname. – tuinstoel

+3

Zum Beispiel: ConnectionString = "Datenquelle = c: \ mydata \ test.db3"; – tuinstoel

8

@tuinstoel ist korrekt, das Anfügen an eine SQLite-Datenbank erstellt es implizit, wenn es nicht vorhanden ist.

SQLite unterstützt auch einen Befehlszeilenclient, der mehr oder weniger wie die Befehlsshell von MySQL ist, sodass Sie Ad-hoc-Befehle ausgeben oder SQL-Skripts ausführen können. Siehe Dokumentation hier: http://www.sqlite.org/sqlite.html

Natürlich müssen Sie den Zend_Db Adapter in Ihrer ZF-Anwendung ändern. ZF unterstützt nur einen Adapter für die PDO SQLite-Erweiterung. SQLite unterstützt keine Benutzer-/Passwort-Anmeldedaten. Da SQLite eine eingebettete Datenbank anstelle von Client/Server ist, ist der Parameter "host" bedeutungslos.

$db = Zend_Db::factory("pdo_sqlite", array("dbname"=>"/path/to/mydatabase.db")); 

Eine weitere Einschränkung: Wenn Sie Abfrageergebnisse in assoziativen-Array-Format erhalten, bestehen einige Versionen von SQLite auf „tabellenname.spaltenname“ als Schlüssel im Array verwenden, während andere Marken von Datenbank Rückkehr Schlüssel als einfach "Spaltenname". Es gibt einen offensichtlichen Fehler in ZF, um zu versuchen, SQLite zu kompensieren und dafür zu sorgen, dass es sich mit den anderen Adaptern konsistent verhält, aber der Fehler ist nicht gelöst.

0

Dies ist jetzt in der Zend Framework quickstart tutorial (Version 1.9.5 zum Zeitpunkt der Erstellung) abgedeckt. So stellen Sie ein neues Projekt (mit zf Kommandozeilen-Tool hier für a great tutorial darauf einrichten.), fügen Sie diese Zeilen zu Ihrer config.ini Datei und Sie sind gut zu gehen:

; application/configs/application.ini 
[production] 
resources.db.adapter  = "PDO_SQLITE" 
resources.db.params.dbname = APPLICATION_PATH "/../data/db/databaseName.db" 

Wenn Sie sich jetzt fragen, für Ihre Standard-Datenbankadapter, wird dieser verwendet. Ich würde auch empfehlen, den Quickstart-Tutorial-Quellcode herunterzuladen und das Skript load.sqlite.php zu verwenden. Sie können ein Schema und eine Datendatei erstellen und die Datenbank mit diesen Tabellen/Spalten/Werten laden. Es ist sehr hilfreich! Schauen Sie sich einfach the tutorial an. Es ist alles drin.


Diese Antwort wurde aus der Frage in eine CW Antwort bewegt Besitz über den Inhalt desavouieren.