[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テーブルのデータを調べてみた
カテゴリ: