我有一个相当基本的问题:我似乎无法将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"驱动程序"返回的错误).所以,我遇到了一个死胡同.我该怎么办?
提前致谢.
从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
文件.
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)
如何使用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)
完成.
归档时间: |
|
查看次数: |
13281 次 |
最近记录: |