Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.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/1/database/10.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
Php Laravel sqlite说数据库是;加密或不是数据库;_Php_Database_Sqlite_Laravel 4 - Fatal编程技术网

Php Laravel sqlite说数据库是;加密或不是数据库;

Php Laravel sqlite说数据库是;加密或不是数据库;,php,database,sqlite,laravel-4,Php,Database,Sqlite,Laravel 4,我的计算机上有一个名为testing.sqlite的数据库文件,其中包含我想要用于测试的me数据库的副本(而不是连接到我的普通MySQL生产服务器) 我按照说明在laravel中的config/database文件中创建了一个条目,将其设置为访问sqlite文件,看起来一切正常。但当我尝试并实际执行任何操作时,我会收到错误消息: [Illuminate\Database\QueryException]

我的计算机上有一个名为testing.sqlite的数据库文件,其中包含我想要用于测试的me数据库的副本(而不是连接到我的普通MySQL生产服务器)

我按照说明在laravel中的config/database文件中创建了一个条目,将其设置为访问sqlite文件,看起来一切正常。但当我尝试并实际执行任何操作时,我会收到错误消息:

[Illuminate\Database\QueryException]                                                                                                                        
SQLSTATE[HY000]: General error: 26 file is encrypted or is not a database (SQL: select * from sqlite_master where type = 'table' and name = vendor_alerts)

我可以使用命令行中的
sqlite testing.sqlite
访问该文件,为什么laravel不能读取它?

问题是sqlite的版本不同。Laravel使用sqlite3,而控制台上的sqlite命令可能是早期版本。从命令行运行
sqlite-version
,检查您的版本-可能是2左右。您需要安装sqlite3,您会发现它不兼容-即
sqlite3测试。sqlite
将产生与您从laravel获得的错误相同的错误

因此,升级您的命令行sqlite版本,并将数据复制到一个新的sqlite3数据库中,laravel将顺利工作