この記事の概要
Nucleus SQLite版の検証用にと、使い勝手がよいと評判のSQLiteManagerを入れてみた。
phpMyAdminにクリソツな、PHPで動くウェブベースのDB管理ツールです。現時点での最新バージョンは1.2.0。
そのときつまづいたことの解決方法を以下にメモ。
インストールは何事もなくすんなりいくんだけど、DBを読み込んでもなぜか中のテーブルが見えない。でもエラーが出るわけでもない。
おかしいなあと長い間悩むうちに、どうもDBの位置情報がおかしくなっているらしいということに気がつく。
パス情報のバックスラッシュをstripslashes()されていて、気づくとドライブルートに\を抜かれた長いファイル名のDBが自動的に作られていた・・。つまり全然関係ないところに作られた、できたてDBの中身を見ていたわけで。どうりでテーブルが見えないわけだ。
対処法は、include フォルダ内の add_database.php の17行目あたり
if(isset($_POST['dbpath'])) $dbFilename = stripslashes($_POST['dbpath']);
これを以下に変えるだけ。
if(isset($_POST['dbpath'])) $dbFilename = str_replace("\\", '/', $_POST['dbpath']);
これで問題なくDBが読めました。快適快適。
ちなみにSQLiteManagerは日本語化されてるけど、デフォルトはEUC-JPです。
UTF-8への対応は、次の記事が参考になりました。
基本、文字コード指定部分を二箇所書き換えるだけなので簡単です。
武蔵流プログラマへの道 - SQLiteManager1.1.3でUTF-8のlangファイルを作る
伊藤:
同じ状況で困ってました。やってみたらうまくできました。
ありがとうございました。