データをsqlite3からsqlite2へ変換して、phpのfile is encrypted or is not a databaseを解決。

個人的には、ずっとOracleとMySqlばかり使っていたが、sqliteを使ってみるととっても手軽で、適度に適当で、でも十分高速なことを発見。最近は、iphoneのsafariにもJavaScriptからsqlite触れるので、さっそくphpでもsqliteを使ってみた。

PupSQLiteという、とっても便利なGUIツールでデータを整備して、server上のsqlite+phpからアクセスすると、

file is encrypted or is not a database

というエラーがでた。エンクリプトした覚えはないのだけど、、調べてみると、sqlite3で作成したdbをsqlite2で操作するとこのエラーが出るみたい。

そこで、windows上で、sqlite3.exeとsqlite.exe(ver2)をダウンロードして、windowsフォルダへ保存。

sqlite3ダウンロード

sqlite2ダウンロード

下記のコマンドで、sqlite3のデータをsqlite2用に変換。

sqlite3  testdata.db .dump | sqlite  testdata.db2

新しくできた、testdata.db2をサーバーへ配置して、phpからアクセスすると、今度は、file is encryptedとはでずにきちんと動作しました!

本当は、sqlite3を使うには、pdoを使うべきのようです。レンタルサーバーなどで、古いバージョンしか使えない環境では、この方法は重宝します。

おまけ:

他のDBやっている人には物足りないが、SQLITEの入門には非常に良い本。文章も分かりやすく、誤字なども少ない本 : 「SQLite入門」

内容は非常にいいのに、訳が最低なSQL本 : 「アートオブSQL」

One Response to “データをsqlite3からsqlite2へ変換して、phpのfile is encrypted or is not a databaseを解決。”

  1. […] peta » データをsqlite3からsqlite2へ変換して、phpのfile is encrypted or is not a d… […]

Discussion Area - Leave a Comment