如何将CakePHP连接到SQLite数据库?

Raf*_*ida 10 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' => ''
);
Run Code Online (Sandbox Code Playgroud)

但是,Cake只说"Cake无法连接到数据库".另外,我不知道在哪里可以看到"真实"日志(即从SQLite"驱动程序"返回的错误).所以,我遇到了一个死胡同.我该怎么办?

提前致谢.

tra*_*nte 9

CakePHP 2.0开始,Sqlite 3支持开箱即用.

确保在PHP配置中启用了sqlite:

phpinfo();
Run Code Online (Sandbox Code Playgroud)

在里面app/Config/databases.php你可以像这样定义Sqlite数据库:

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

现在检查你的app/webroot/my_database_name.sqlite文件.


gid*_*nma 6

CakePHP尚未正式支持SQLite3 ...可能是因为附加到此bug /增强的文件有效.

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

获取该文件的最新版本,使用任何较新的补丁进行更新,将其上载到您的cake/libs/model/datasources/dbo目录并在database.php文件中进行配置.

我正在使用一个名为dbo_sqlite3.php的文件

我的配置文件使用它来进行驱动程序设置:

  'driver' => 'sqlite3',
Run Code Online (Sandbox Code Playgroud)


ano*_*ous 6

如何使用SQLite3 CakePHP:

质量要求:

脚步:

解压缩Datasources插件.

编辑dbo_sqlite3.php并添加:

App::import('Datasource','DboSource');
Run Code Online (Sandbox Code Playgroud)

......就在"阶级"定义之前.

在database.php文件中使用以下配置:

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

完成.