2009-04-02 7 views
6

あまりにも単純すぎると申し訳ありません。Zend Framework:SQLiteを使い始める

私は、MySQLデータベースの代わりにSQLiteデータベースを使用することに決めました。私は単純なSQLiteのしくみを頭に入れようとしています。Zend FrameworkでSQLiteを使う方法、SQLiteデータベースを自分のディレクトリ構造に入れる方法、データベースを作成する方法などの簡単な解答のチュートリアルが欲しいです

答えて

7

既存のデータベースに接続していない場合は、その場でデータベースが作成されます。 (あなたはこの動作を無効にすることができます)

+0

どこが作成されますか? – Andrew

+0

これはサイトhttp://www.connectionstrings.com/sqliteで接続文字列を切り捨てます。データソースは単に提供するファイル名です。 – tuinstoel

+3

例:ConnectionString = "データソース= c:\ mydata \ test.db3"; – tuinstoel

8

@tuinstoelは正しいですが、SQLiteデータベースに添付すると、存在しない場合は暗黙的に作成されます。

SQLiteは、MySQLのコマンドシェルとほぼ同じようなコマンドラインクライアントもサポートしており、アドホックコマンドを発行したり、SQLスクリプトを実行することができます。こちらのドキュメントをご覧ください:http://www.sqlite.org/sqlite.html

もちろん、ZFアプリケーションでZend_Dbアダプタを変更する必要があります。 ZFは、PDO SQLite拡張モジュールへのアダプタのみをサポートします。 SQLiteはユーザー/パスワードの資格情報をサポートしていません。また、SQLiteはクライアント/サーバではなく組み込みデータベースなので、 "host"パラメータは無意味です。

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

つ以上の警告:あなたは連想配列形式でクエリ結果を取得するときに、SQLiteの一部のバージョンでは、単にデータベースのリターンキーの他のブランドのに対し、配列のキーとして「のTableName.ColumnName」を使用して主張"columnname"。これについてのZFの傑出したバグがあります。これは、SQLiteを他のアダプタと一貫して動作させるためのものですが、バグは未解決です。

0

これはZend Framework quickstart tutorial(本書の時点ではバージョン1.9.5)でカバーされています。ただ、新しいプロジェクト(。ZFコマンドラインツールでは、それを設定するにa great tutorialのためにここを見て)ご使用のconfig.iniファイルに以下の行を追加し、あなたが行ってもいいです:

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

今、あなたはあなたのために頼むときデフォルトのデータベースアダプタであれば、これを使用します。また、クイックスタートチュートリアルのソースコードをダウンロードし、load.sqlite.phpスクリプトを使用することをお勧めします。スキーマとデータファイルを作成し、これらのテーブル/列/値を使用してデータベースをロードすることができます。非常に役立ちます!ただthe tutorialをチェックしてください。それはすべてそこにあります。


この回答はコンテンツ以上の所有権を否認するCW答えに疑問の外に移動されました。