修复/从损坏的SQLite文件中获取数据

时间:2010-11-08 15:02:17

标签: php sqlite corruption

我的应用程序使用SQLite进行数据存储。一切都很好,但有一天有人破坏了数据文件,现在应用程序无法读取它。我不明白具体是什么问题,但我知道有两件事: 1)$result = sqlite_query($query,$db_path);
当此代码与旧备份一起运行时(顺便说一下,它不包含所有数据),一切正常,$result成为正确的值。当它与损坏的文件一起运行时,$result变为null 2)我在记事本中打开了这个损坏的SQLite文件,它看起来很好(它的结构就像旧结构一样)。

我唯一的想法是解析该损坏的文件。我在哪里可以获得SQLite文件规范?或许还有另一种方式?

1 个答案:

答案 0 :(得分:0)

有一个名为 sqlite3 的命令行工具,可以让您管理SQLite数据库。 启动后,使用“.help”查看可用选项。我没有在损坏的数据库上尝试过,所以我不知道它会如何发展。

一个想法是从sqlite数据库中查看模式和 dump 表,一次一个,直到你点击存储在文件损坏部分的表。

cristi:FoodBrowser diciu$ sqlite3 FoodBrowser.sql 
SQLite version 3.6.12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .help
.backup ?DB? FILE      Backup DB (default "main") to FILE
[..]