Как я могу импортировать файл SQLite db3 - PullRequest
3 голосов
/ 03 марта 2011

Извините за этот вопрос, но я никогда не работал с SQLite, и я просмотрел сайт SQLite, скачал файлы «Предварительно скомпилированные двоичные файлы для Windows», пытался сделать их пригодными для своих целей, но я не смог, я видел в рабочих руководствах с базами данных, таблицы.

Моя задача - получить данные из SQLite и поместить их в базу данных magento mysql. Поэтому для этого у меня есть файл дампа БД SQLite в виде файла .db3, файл txt с размером файла дампа БД (20110125_SIZE).

Так, как я могу импортировать это в SQLite. Пожалуйста, если кто-то из вас работал с SQLite3, помогите мне понять файл .db3 и как я могу просмотреть записи из них.

Я получил дамп sqlite3 db как dbname.db3,

Итак, я попытался подключить этот sqllite от php. Вот мой пример кода, который я получил с форума.

    $db = openDatabase();   
    unset($db);

    function openDatabase() {
        $dbFile = realpath('dbname.db3');
        echo $dbFile . "\n";
        $needDbCreate = !file_exists($dbFile);
        $db = new SQLiteDatabase($dbFile) or die((file_exists($dbFile)) ? "Unable to open" : "Unable to create");
        if($needDbCreate) {

        }
        return $db;
    } 

Но я получаю смертельное исключение.

Неустранимая ошибка: необработанное исключение «SQLiteException» с сообщением 'SQLiteDatabase :: _ construct () [sqlitedatabase .-- construct]: файл зашифрован или не является база данных 'в C: \ wamp \ www \ SQLITE \ index.php: 23 стека трассировка: # 0 C: \ WAMP \ WWW \ SQLITE \ index.php (23): SQLiteDatabase -> _construct ( 'C: \ WAMP \ WWW \ SQL ...') 1 C: \ wamp \ www \ SQLITE \ index.php (15): openDatabase () # 2 {main}, брошенный в C: \ wamp \ www \ SQLITE \ index.php на линии 23

Но когда я попробовал тот же sqldump с PDO, я подключился.

try {       
        $dbh = new PDO("sqlite:C:\wamp\www\SQLITE\dbname.db3");
        echo 'Db Connected <br/>';

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

здесь я не знаю список таблиц, доступных в этом дампе, так как я могу запросить их список и затем получать записи из них.

Пожалуйста, помогите мне решить эту проблему, чтобы подключиться и просматривать таблицы с php.

Извините за публикацию здесь в ответ раздел, я хотел бы выделить Код.

Спасибо

Ответы [ 2 ]

3 голосов
/ 03 марта 2011

В системе, где установлен SQLite, обычно у вас также есть программа командной строки sqlite3. Его можно использовать как из командной строки, так и в интерактивном режиме для выгрузки данных или загрузки их в (двоичный) файл базы данных.

sqlite3 ./database.file

Это даст вам интерактивное приглашение, в котором вы сможете вводить команды SQL или специальные команды, такие как .help или .dump.

Есть и другие графические инструменты, но они, вероятно, излишни для того, что вы хотите сделать.

Редактировать: видя ваш ответ (в настоящее время в разделе ответов), кажется, что ваш файл .db3 просто не в двоичном формате SQLite3, а вместо этого, возможно, дамп. Это было бы проблемой. Если это дамп, вам нужно сначала загрузить его в нужный файл базы данных.

cat yourdump.sql|sqlite3 ./realdb.db3
0 голосов
/ 22 ноября 2013
call three times 
$rr=exec("sqlite3 database.db \".separator '|'\" ");
$rr=exec("sqlite3 database.db \".import myfile.txt tablename\" ");
$rr= exec ("sqlite3 database.db \"pragma encoding = 'utf-8'\" ");

or 
single line 
$rr=exec("sqlite3 database.db \".separator '|'\" && sqlite3 database.db \"pragma encoding = 'utf-8'\"   && sqlite3 database.db \".import myfile.txt tablename\" ");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...