将SQLite3与CakePHP 2.0一起使用

Pau*_*ica 13 sqlite cakephp cakephp-2.0

我正在尝试使用CakePHP 2.0运行SQLite3

在这些问题中,我看到可以在CakePHP 1.3中执行此操作:
- 在CakePHP中使用Sqlite3
- 如何将CakePHP连接到SQLite数据库?

但是,这些解决方案对CakePHP 2.0无效.

我配置了文件'database.php',我在CakePHP的起始页面上取得了成功.它能够连接到数据库(但我不知道在哪里可以找到.db3数据库文件).

我使用了以下代码:

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

我试图找出:

  1. 我的cake_blog_tutorial.db3文件应保存在哪里
  2. SQLite3的数据源是否不同,例如'Database/Sqlite3'?

谢谢您的帮助!

Jon*_*rns 18

简而言之,答案是CakePHP 2.0中的Sqlite3数据库采用类似以下配置:

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

然后在webroot目录中自动创建sqlite文件(除非您在数据库名称前面添加相对路径).

顺便提一下,您可以通过将数据库名称更改为":memory:"来使用内存中的Sqlite数据库(例如,用于测试目的),例如:

public $default = array(
        'datasource' => 'Database/Sqlite',
        'persistent' => false,
        'database' => ':memory:',
        'prefix' => '',
        //'encoding' => 'utf8',
);
Run Code Online (Sandbox Code Playgroud)