現在のDBはSQLiteで、GUI的にいじりづらい。
で、SQLiteManagerっていう管理ツールがSQLiteにもあるらしいので、
それを導入してみた。
公式サイトはこちら。
SQLiteManager : Web based tool to manage (administration) SQLite databases. – Accueil
まず、必要な条件は、PHP5。
PHP4では、動かないっぽい。
というわけで、今回は共有サーバ(さくらインターネット)ではなく、
ローカルのWindowsで動かしました。
ベースは、Apache2.0.59。
公式にある情報は、こんなところ。
PHP-5.1.2
mcrypt
mysql
mysqli
PDO
├ PDO_SQLITE
└ PDO_MYSQL
まぁでも、Apache2+PHP5入ってれば大体入ってるかと。
インストールは簡単。
落としてきたファイルを解凍して、任意の場所に置くだけ。
インストール後、アクセスしてみると早速このエラー。
The SQLite extension can’t be loaded
これは何かと言うと、
phpで、sqliteのextentionが読み込めてない、ということ。
参考としては、こちら。
php.iniを開いて、extensionのところを見ると、php_sqlite.dllの行がコメントアウトされているので、これのコメントアウトを消す。これだけでも動くのかもしれないが、あるサイトによるとphp_pdo.dllを追加してやる必要があるっぽいので、これも入れて見る。そうしてApacheを再起動したら、無事に動いた。ちなみにphp.iniはセミコロンでコメントアウトになる。
PHP5.1以前はこんなことをしなくても動いたらしいが、現在はPHP5.2が最新版なのでこのような問題が生じたらしい。
これで、動くようになるのだけど、
次の問題は、DBが取り込めない。
きちんと、取り込んでるはずなのに、エラーが出る。
内容を見ると、
『POSTで送るにはてめーのファイルはでかすぎるんだよ!』
と言われてる様子。
というわけで、これまた、PHPの設定を変更する。
408行目くらいに、次の記述があるので、8Mを適当な数字に変更。
; Maximum size of POST data that PHP will accept.
post_max_size = 8M
↓
post_max_size = 20M
僕の場合、ファイルサイズが16M弱だったので、こんな感じ。
この設定で、無事に取り込めるようになるのだけど、
今度は、フィールドが表示されない。
なんだこれ?
調べてみたら、どうやら、DBの位置情報がおかしいんだそうだ。
解決方法は、こちらを参考に、
パス情報のバックスラッシュをstripslashes()されていて、気づくとドライブルートに\を抜かれた長いファイル名のDBが自動的に作られていた・・。つまり全然関係ないところに作られた、できたてDBの中身を見ていたわけで。どうりでテーブルが見えないわけだ。
対処法は、include フォルダ内の add_database.php の17行目あたり(後略…内容はリンク先へ)
SQLiteManagerのファイルを修正してやることで解決。
もし、UTF-8でDBを作ってたら、
SQLiteManagerの文字コードをUTF-8にした方が良いので、
この辺りも参考に。
SQLiteManager – EthnaWiki
(ひょっとして、1.2.0なら対応してるのかも?)
あと、使ってみて、GUIで変更すると、クエリで失敗することがあったので、
(なぜか、文字列がクオーテーションで囲まれなかった)
クエリ書いて、SQLで実行させた方が良いかも。
てか、それ出来るなら…プロンプトとかでやった方が早いか(苦笑)
いや、でも、GUIで確認できるのは、
僕みたいなプログラマじゃない人間にとっては十分に有用です。ええ。
スバラシイ。
各サイトに感謝。
■ 注釈
* とある事情
あるエントリにコメントをいただいたんだけど、なぜかそのエントリが、かぶって登録されていた。メニューにも2つ表示されていて、コメントは両方についていた。
エントリ一覧で確認すると、エントリIDは違ったので、片方を削除したんだけど、
削除したらコメントも削除された…
というわけで、その復活のためにDBをいじったのであります。