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
SQLite3构造函数创建数据库错误-PHP_Php_Sqlite - Fatal编程技术网

SQLite3构造函数创建数据库错误-PHP

SQLite3构造函数创建数据库错误-PHP,php,sqlite,Php,Sqlite,我想在我的网站上实现一个语言功能。我计划用一个简单的SQLite数据库系统来实现这一点 到目前为止,我得到了以下代码: private function openLanguagePack($package){ if(!file_exists($this->getLanguagePackUrl($package))){ $create = true; } $this->languagePacks[$package] = new SQLite3($

我想在我的网站上实现一个语言功能。我计划用一个简单的SQLite数据库系统来实现这一点

到目前为止,我得到了以下代码:

private function openLanguagePack($package){
    if(!file_exists($this->getLanguagePackUrl($package))){
        $create = true;
    }
    $this->languagePacks[$package] = new SQLite3($this->getLanguagePackUrl($package));
    if($create){
        $this->languagePacks[$package]->queryExec('CREATE TABLE language (token nvarchar(50), text nvarchar(4000), PRIMARY KEY (token));');
    }
}
(该代码来自一个旧项目,并使用了较旧版本的SQLite。 我现在正在将它重写为SQLite3

但使用此代码,我会遇到以下错误:

致命错误:未捕获异常“exception”,消息为“无法” 打开数据库:无法打开数据库文件'

我看不出错误。在关于构造函数的文章中,它说如果不存在数据库,ist会自动创建一个新的数据库。(目前数据库不存在。)


有人知道这个问题吗?

我想你已经回答了你自己的问题……创建一个数据库。在你发布的文档链接中没有提到数据库是自动为你创建的。它只是创建一个实例并打开由
$filename
参数提供的数据库。例外情况是如果要使用内存中的表,请在以下标志下:
SQLITE3\u OPEN\u CREATE:如果数据库不存在,请创建数据库。
Yes,但根据您的代码,您没有使用该标志。我看不到如何自动为您创建任何内容。(为了透明起见,我不熟悉SQLite3,我的评论是对您的代码和提供的文档链接的观察。)
默认情况下,open使用SQLITE3\u open\u READWRITE | SQLITE3\u open\u CREATE。
opps…我的大脑停在那一行的末尾,没有移动到下一行来查看
SQLITE3\u open\u CREATE
。我的道歉。。。。