データを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 testdata.db .dump | sqlite testdata.db2
新しくできた、testdata.db2をサーバーへ配置して、phpからアクセスすると、今度は、file is encryptedとはでずにきちんと動作しました!
本当は、sqlite3を使うには、pdoを使うべきのようです。レンタルサーバーなどで、古いバージョンしか使えない環境では、この方法は重宝します。
おまけ:
他のDBやっている人には物足りないが、SQLITEの入門には非常に良い本。文章も分かりやすく、誤字なども少ない本 : 「SQLite入門」
内容は非常にいいのに、訳が最低なSQL本 : 「アートオブSQL」
[…] peta » データをsqlite3からsqlite2へ変換して、phpのfile is encrypted or is not a d… […]