2009-06-20 10 views
9

私はかなり基本的な問題があります。私はSQLiteデータベースにCakePHPを接続できないようです。驚いたことに、私は間違ったキーワードを探しているかもしれませんが、インターネット上でそれに関する多くの情報を見つけられませんでした。それにもかかわらず、これは私の接続コードです:CakePHPをSQLiteデータベースに接続するにはどうしたらいいですか?

var $default = array(
     'driver' => 'sqlite', 
     'connect' =>'sqlite_popen', 
     'persistent' => false, 
     'host' => 'localhost', 
     'port' => '', 
     'login' => '', 
     'password' => '', 
     'database' => '/home/MY_USER_NAME/public_html/my_database.sqlite', 
     'schema' => '', 
     'prefix' => '', 
     'encoding' => '' 
); 

でも、ケーキは「ケーキはデータベースに接続できません」としか言いません。また、「実際の」ログ(SQLiteの「ドライバ」から返されたエラー)をどこに見るのかわかりません。だから、私は行き詰まった。私は何をすべきか?

ありがとうございます。

+0

ダウンワードを理解していない:SOの方針は「あまりにも明白な質問」がないということだった。 –

答えて

8

CakePHP 2.0の時点で、Sqlite 3はそのままの状態でサポートされています。

sqliteのは、PHPの設定で有効になっていることを確認してください:app/Config/databases.phpインサイド

phpinfo(); 

あなたはこのようにsqliteは、データベースを定義することができます。

public $default = array(
     'datasource' => 'Database/Sqlite', 
     'persistent' => false, 
     'database' => 'my_database_name', 
     'prefix' => '', 
     'encoding' => 'utf8', 
); 

は、今すぐあなたのapp/webroot/my_database_name.sqliteファイルを確認してください。

1

SQLite 3データベースに接続しようとしていますか? CakePHPはまだそれらをサポートしていません。

それ以外の場合は、パスに先導/を追加してみてください。あなたが絶対的な道をしようとしているように見えますが、大胆なスラッシュがなければ、それはあなたが思うことをするつもりはありません。

+0

先行スラッシュを追加しました。ここでパスを入力するときに忘れてしまっただけです(私は無実を保護するために名前が変更されたパスを再入力しました)。私はSQLite 3の問題について聞いたことがありますが、作成したデータベースのバージョンは何か分かりません。IDEのこのオプションが表示されませんでした(FirefoxのExtension SQLite Managerを使用しています)。どうすればそれを見つけることができますか? –

+0

"select sqlite_version()"は、使用中のsqliteエンジンのバージョンを表示します。 –

+0

SQLite Managerをあきらめ、SQLite 2データベースをダウンロードし、手を汚し、データベースを自分でコーディングして問題を解決しました。 –

6

SQLite3はまだCakePHPによって正式にサポートされていません...おそらくこのバグ/拡張機能に添付されたファイルが機能するからです。

https://trac.cakephp.org/ticket/3003

、ファイルの最新バージョンをつかんで任意の新しいパッチでそれを更新し、あなたのcake/libs/model/datasources/dboディレクトリにアップロードし、あなたのdatabase.phpでファイルでそれを設定します。私は

マイコンフィギュレーション・ファイルdbo_sqlite3.phpと呼ばれるファイルを使用しています

はドライバの設定のためにこれを使用しています。

'driver' => 'sqlite3', 
+0

今後のプロジェクトで使用するかもしれないことを知ってうれしいです!ありがとう! –

6

どのようにSQLite3とCakePHPのに:

のrequirments:

ステップ:

場所にデータソースプラグインを解凍します。

編集dbo_sqlite3.phpおよび追加:

App::import('Datasource','DboSource'); 

を...単に 'クラスの定義の前に。

は、あなたのdatabase.phpでファイルに次の構成を使用します。

var $default = array(
    'datasource' => 'Datasources.DboSqlite3', 
    'login' => '', 
    'password' => '', 
    'database' => '/full/path/to/db.sqlite'); 

完了。

+0

さて、今は簡単です。問題は、この質問が投稿されたときに利用できなかったことです。とにかく参考のために投票する。 =) –

関連する問題