Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将CakePHP连接到SQLite数据库?_Sqlite_Cakephp - Fatal编程技术网

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

如何将CakePHP连接到SQLite数据库?,sqlite,cakephp,Sqlite,Cakephp,我有一个相当基本的问题:我似乎无法将CakePHP连接到我的SQLite数据库。令人惊讶的是,我没有在互联网上找到很多关于它的信息,尽管我可能查错了关键词。然而,这是我的连接代码: var $default = array( 'driver' => 'sqlite', 'connect' =>'sqlite_popen', 'persistent' => false, 'host' => 'localhost

我有一个相当基本的问题:我似乎无法将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' => ''
);
不过,Cake只说“Cake无法连接到数据库”。此外,我不知道在哪里可以看到“真实”日志(即,从SQLite“驱动程序”返回的错误)。所以,我走到了死胡同。我该怎么办


提前感谢。

您正在尝试连接到SQLite 3数据库吗?还不支持他们


除此之外,您可能希望尝试在路径中添加前导的
/
。似乎您正在尝试创建一个绝对路径,但如果没有前导斜杠,它将无法执行您认为它将要执行的操作。

CakePHP尚未正式支持SQLite3。。。可能是因为附加到此bug/增强的文件起作用

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

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

我的配置文件将此用于驱动程序设置:

  'driver' => 'sqlite3',

如何将PHP与SQLite3结合起来:

要求:

  • CakePHP 1.3版
步骤:

将数据源插件解包到位

编辑dbo_sqlite3.php并添加:

App::import('Datasource','DboSource');
…就在“类”定义之前

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

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

从开始,Sqlite 3就得到了开箱即用的支持

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

phpinfo();
app/Config/databases.php中,您可以这样定义Sqlite数据库:

public $default = array(
        'datasource' => 'Database/Sqlite',
        'persistent' => false,
        'database' => 'my_database_name',
        'prefix' => '',
        'encoding' => 'utf8',
);
'default' => [
    'className' => 'Cake\Database\Connection',
    'driver' => 'Cake\Database\Driver\Sqlite',
    'persistent' => false,
    'host' => 'localhost',
    'port' => '',
    'login' => '',
    'password' => '',
    'database' => 'C:\Bitnami\wampstack-5.6.39-0\apache2\htdocs\cake36\cake36.sqlite',
    'schema' => 'test',
    'prefix' => '',
    'encoding' => ''
],

现在检查您的
app/webroot/my_database\u name.sqlite
文件。

对于cakephp 3.6,它应该是这样的:

public $default = array(
        'datasource' => 'Database/Sqlite',
        'persistent' => false,
        'database' => 'my_database_name',
        'prefix' => '',
        'encoding' => 'utf8',
);
'default' => [
    'className' => 'Cake\Database\Connection',
    'driver' => 'Cake\Database\Driver\Sqlite',
    'persistent' => false,
    'host' => 'localhost',
    'port' => '',
    'login' => '',
    'password' => '',
    'database' => 'C:\Bitnami\wampstack-5.6.39-0\apache2\htdocs\cake36\cake36.sqlite',
    'schema' => 'test',
    'prefix' => '',
    'encoding' => ''
],

添加了反前导斜杠,只是在这里键入路径时忘记了它(我重新键入了路径,更改了名称以保护无辜者)。我听说过SQLite 3的问题,但我不知道我创建的数据库的版本是什么,在IDE中没有看到这个选项(我使用的是Firefox的扩展SQLite管理器)。如何找到它?“选择sqlite_version()”将向您显示正在使用的sqlite引擎的版本。通过放弃sqlite管理器、下载sqlite 2数据库、弄脏我的手并自己编写数据库来解决问题。无需返回sqlite 2。Paolo提供的链接显示SQLite3支持已从“bug”更改为“增强”,并计划在CakePHP 2.0.x.x中使用。同时,你可以使用附在罚单上的驱动程序。不理解否决票:虽然苏的政策是没有“太明显的问题”。很高兴知道,我可能会在未来的项目中使用它!谢谢是的,现在已经很容易了,问题是当这个问题被发布时,这些都不可用。无论如何都要投票支持该引用。=)