2011-11-07 32 views
13

Tôi đang cố gắng để chạy SQLite3 với CakePHP 2.0Sử dụng SQLite3 với CakePHP 2.0

Trong những câu hỏi này, tôi thấy rằng nó có thể làm điều đó trong CakePHP 1.3:
- Using Sqlite3 with CakePHP
- How do I connect CakePHP to a SQLite database?

Tuy nhiên , các giải pháp không hợp lệ cho CakePHP 2.0.

Tôi đã định cấu hình tệp 'database.php' và tôi đã thành công trên trang bắt đầu của CakePHP. Nó có thể kết nối với cơ sở dữ liệu (nhưng tôi không biết nơi tìm tập tin cơ sở dữ liệu .db3).

tôi đã sử dụng đoạn mã sau:

public $default = array(
    'datasource' => 'Database/Sqlite', 
    'persistent' => false, 
    'host' => 'localhost', 
    'login' => '', 
    'password' => '', 
    'database' => 'cake_blog_tutorial', 
    'prefix' => '', 
    //'encoding' => 'utf8', 
); 

Tôi đang cố gắng để tìm hiểu:

  1. đâu cake_blog_tutorial.db3 tập tin của tôi nên được giữ
  2. là nguồn dữ liệu khác nhau cho SQLite3, ví dụ 'Cơ sở dữ liệu/Sqlite3'?

Cảm ơn sự giúp đỡ của bạn!

+2

thường là trong thư mục webroot .. Hãy thử tìm ở đó cho tập tin của bạn, tôi cũng không biết trong bánh 2.0 kể từ khi tôi đã không kiểm tra nó, nhưng trong 1.3 bạn cần phải sử dụng sqlite3 kể từ khi người khác đã không hỗ trợ sqlite3 chỉ các phiên bản trước ... bạn có thể thay đổi cơ sở dữ liệu để ../cake_blog_tutorial để nó xuất hiện trong thư mục ứng dụng của bạn thay vì webroot (để ngăn chặn truy cập từ bên ngoài) – api55

+0

Cảm ơn bạn, Api55! Bạn trả lời câu hỏi của tôi! Tệp được tạo tự động trong thư mục webroot (hoặc thư mục tương đối khác mà bạn chọn, như trong ví dụ của bạn). CakePHP hỗ trợ SQLite3, sử dụng 'Database/Sqlite'. Bạn có thể thấy điều này mở lib \ Cake \ Model \ Datasource \ Database \ Sqlite.php –

Trả lời

17

Nói tóm lại, câu trả lời là cơ sở dữ liệu Sqlite3 trong CakePHP 2.0 mất một cái gì đó giống như cấu hình sau:

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

Các tập tin SQLite sau đó được tự động tạo ra trong thư mục webroot (trừ khi bạn thêm vào trước một con đường tương đối so với tên cơ sở dữ liệu).

Ngẫu nhiên, bạn có thể sử dụng trong bộ nhớ cơ sở dữ liệu SQLite (cho mục đích thử nghiệm, ví dụ) bằng cách thay đổi tên cơ sở dữ liệu ": bộ nhớ:", ví dụ:

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

Giải pháp này cũng hợp lệ cho CakePHP 3 – jjz

Các vấn đề liên quan