[MovableType]「自動保存」されたブログ記事のデータはどこに保存されているのか?
具体的には、mt_session.session_kindが"AS"のレコードがそれにあたります。
「自動保存」データには、新規記事を編集しているときの自動保存データと既存記事を編集しているときの自動保存データがあるのですが、
mt_sesson上はちゃんと別レコードとして格納されています。
mt_session.session_idが、
"autosave:user=1:type=entry:id=0:blog_id=1"となっているものが、新規記事を編集するときのの自動保存データです。
"autosave:user=1:type=entry:id=435:blog_id=1"のようになっているものは、既存記事を編集しているときの自動保存データです。
既存記事の自動保存データはエントリごとにレコードが分けられているのですね。
さて、自動保存された新規記事を取得するには下記のようなSQLを書けばOKです。
select session_data from mt_session where session_kind = 'AS' AND session_id like 'autosave:%type=entry:id=0:blog_id=1%'
しかし難しいのはここからで、実はsession_dataに格納されているのはシリアライズされた特殊なデータ構造なのです。
SERG ^BH > ^Radd_category_id_54- -
^Pauthored_on_time- 01:18:12 ^Radd_category_id_48- ^Lcustom_prefs-
!title,text,tags,category,feedback
とまあこんな感じです。せっかくSELECT文で取得できても、このままではWeb画面に表示できないのです。
何とかしてこれをアンシリアライズしてやらないといけません。
ここからがちょっと面倒くさいので、別記事でやり方を解説することにします。
参考
[MovableType]mt_sessionテーブルのデータを調べてみた
カテゴリ:
MovableType