SQLite」タグアーカイブ

Firefoxでフォーム入力履歴の調べ方

FirefoxをはじめとするWebブラウザには、フォームに入力・送信したデータを2回目以降は履歴から入力するという機能があります。(ユーザー側で機能をOFFにすることもできますし、サイト側で無効にしている場合もあります。)

履歴から入力できるということは、当然ブラウザ内にデータが保存されている訳ですが、この保存されている履歴データを調べたい場合は次のような感じで調べられるみたいです。

履歴が保存されているファイルの場所

Windowsの場合

%APPDATA%\Mozilla\Firefox\Profiles\****.default\formhistory.sqlite

Linuxの場合

$HOME/.mozilla/firefox/****.default/formhistory.sqlite

****.defaultの部分は使っているプロファイル名に読み替えてください。プロファイルが良く分からないという場合は多分1つしか作られていないと思いますので迷うことはないと思います。

履歴の調べ方

formhistory.sqliteはSQLiteのデータベースになっています。SQLiteに対応したお好みのアプリケーションで表示すれば中身を確認できますが、例えばコマンドラインから調べたい場合は次のような感じで表示できます。

sqlite3は操作を間違えるとファイルの書き換えもできます。心配な場合はオリジナルのファイルではなく、コピーしたバックアップファイルで試してください。

$ sqlite3 formhistory.sqlite
sqlite> select fieldname,value from moz_formhistory;
user_id|123456
userName|yourname
email|yourname@example.com
… 以下、省略

上の例ではuser_idという名前のフォームに入力した値が123456で、userNameという名前のフォームに入力した値がyournameということになります。

ユーザー名などのデータを履歴から入力していたけれど、フォームが改変されて履歴データが使えなくなってしまった場合や、サイトが閉鎖されて履歴が調べられなくなってしまった場合などで困っている場合は試してみてください。

SQLiteでdateやdatetimeの扱い方

PythonのSQLiteモジュールを使ってdate型やdatetime型を扱う方法

テーブルの作成

$ sqlite3 data.db
sqlite> CREATE TABLE sample(d date, t timestamp);
sqlite> .quit

Pythonでdate型やdatetime型の読み書き

>>> import sqlite3, datetime, time
>>> con = sqlite3.connect('data.db', detect_types = sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)

データの追加

>>> today = datetime.date.today()
>>> now = datetime.datetime.now()
>>> con.execute('INSERT INTO sample(d, t) values (?,?)', (today, now))

データの読み出し

>>> con.execute('SELECT * FROM sample').fetchall()
[(datetime.date(2016, 5, 17), datetime.datetime(2016, 5, 17, 11, 45, 20, 153520))]

SQLiteの使い方

SQLiteに関しての覚え書き

テーブル一覧を表示

データベースに作られたテーブルを表示

sqlite> .tables
table01  table02  table03

テーブルのスキーマを表示

テーブルのスキーマ(構造)を表示

sqlite> .schema table01
CREATE TABLE table01
(
        id INTEGER PRIMARY KEY,
        value INTEGER,
        tag TEXT
);

カラムを追加

table01column01というカラムを追加

ALTER TABLE table01 ADD COLUMN column01 TEXT;

dump

$ sqlite db.sql .dump > db.sql.txt