当前位置:  开发笔记 > 编程语言 > 正文

错误:文件已加密或不是数据库

如何解决《错误:文件已加密或不是数据库》经验,为你挑选了3个好方法。

我用PHP创建了一个带表的数据库.我是通过以下方式完成的:


从命令行执行我的PHP文件后:"php test.php"我在我的目录中得到一个名为"test.db"的新文件(这就是我想要的).在命令行中,我键入"sqlite3 test.db".这样我就进入了sqlite命令行会话.然后,使用sqlite3,我输入".tables"(我想检查新数据库是否包含它应该包含的表).结果我得到:

Error: file is encrypted or is not a database 

所以,它不起作用.有人知道这个问题吗?预先感谢您的任何帮助.



1> 小智..:

这是版本不匹配问题.

要使用PHP5和SQLite打开一个数据库,我们需要使用PDO和没有sqlite_open()功能.如何打开或创建数据库的示例:

try 
{
    /*** connect to SQLite database ***/

    $dbh = new PDO("sqlite:VPN0.sqlite");
    echo "Handle has been created ...... 

"; } catch(PDOException $e) { echo $e->getMessage(); echo "

Database -- NOT -- loaded successfully .. "; die( "

Query Closed !!! $error"); } echo "Database loaded successfully ....";



2> Ted Xu..:

我遇到了同样的问题,使用pdo而不是sqlite_open()

这个链接非常有用,这是我的代码片段,完美运行,希望它有所帮助

$dir = 'sqlite:YourPath/DBName.db';
$dbh  = new PDO($dir) or die("cannot open the database");
$query =  "SELECT * from dummy_table";
foreach ($dbh->query($query) as $row)
{
    echo $row[0];
}



3> 小智..:

这很可能是php sqlite版本和你的独立sqlite可执行文件之间的版本不匹配.

请参阅:http://us3.php.net/manual/en/book.sqlite.php - 来自Andrew Paul Dickey的"用户贡献笔记".

为了快速解决方案,您可以安装和使用sqlite2独立可执行文件.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有