我有一些麻烦,打开一个源码文件文件进行加密或不是一个数据库 - 源码
在命令行中我得到这个:
#sqlite3 sms.db
SQLite version 3.6.20
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from message;
Error: file is encrypted or is not a database
的错误是不是当我连接,它的当我运行一个查询
检查文件让我这个
# file sms.db
sms.db: SQLite 3.x database
所以它不应该是一个版本锡永的问题 - 就像sqlite3的
打开sqlite2文件在PHP中我有这样的:
try
{
/*** connect to SQLite database ***/
$db = new PDO("sqlite:path/sms.db");
echo "Handle has been created ...... <br><br>";
}
catch(PDOException $e)
{
echo $e->getMessage();
echo "<br><br>Database -- NOT -- loaded successfully .. ";
die("<br><br>Query Closed !!! $error");
}
$result = $db->query('SELECT * from message') or var_dump($db->errorInfo());
获取我这个(不连接,但在执行查询)
array(3) { [0]=> string(5) "HY000" [1]=> int(26) [2]=> string(38) "file is encrypted or is not a database" }
我用一个用于firefox的Sql管理器扩展,我可以在没有任何问题的情况下打开该文件(并且运行任何没有任何加密或密码的查询)。这对我来说真的很奇怪。我在最后几个小时搜查了这个,但是我没有找到任何解决办法。任何帮助,将不胜感激。
我刚刚在Windows上测试过,我可以打开数据库。我认为这个问题与sqlite驱动有关。
在Windows上我有SQLite库3.7.7.1 在我的CentOS的服务器我有SQLite库3.6.20
现在的问题是我怎么更新PHP源码扩展。我不能更新整个PHP(可能会导致错误)
命令像百胜安装PHP-PDO,百胜安装PHP5-sqlite3的,不工作
在最后我刚用java打开数据库。你只需要添加一个jar文件,而不必修改服务器上的任何内容 – user1611597