Восстановить / получить данные из поврежденного файла SQLite - PullRequest
1 голос
/ 08 ноября 2010

Мои приложения используют SQLite для хранения данных.Все было хорошо, но однажды кто-то испортил файл данных, и теперь приложение не может его прочитать.Я не могу понять, что конкретно не так, но я знаю две вещи:
1) $result = sqlite_query($query,$db_path);
Когда этот код работает со старой резервной копией (которая, кстати, не содержит всех данных), все в порядке, $result становится правильным значением.Когда он запускается с поврежденным файлом, $result становится null.
2) Я открыл этот поврежденный файл SQLite в блокноте, и, похоже, он в порядке (его структура похожа на структуру старого).

Единственная идея, которая у меня есть, - разобрать поврежденный файл.Где я могу получить спецификацию файлов SQLite?А может, есть другой способ?

1 Ответ

0 голосов
/ 08 ноября 2010

Существует инструмент командной строки под названием sqlite3 , который позволяет вам управлять базами данных SQLite.После запуска используйте «.help», чтобы увидеть доступные опции.Я не пробовал его на поврежденных базах данных, поэтому понятия не имею, как это будет.

Одной из идей было бы посмотреть схему и таблицы dump из баз данных sqliteдо тех пор, пока вы не коснетесь таблицы, которая хранится в поврежденных частях вашего файла.

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
[..]
...