MovableType4に移行後、過去の記事を編集しようと一覧表示をしようとすると、
「ブログ記事が見つかりません。」
とのエラーが...。たま~に投稿しようとするとこういう事って多いですよね。
...って、自分でMT入れてるから、そのうち何とかしないといけないですけど(;_;)
という事で、更新サボっている言い訳でした。
転んでもただでは起きずにネタにしてしまう関西人の魂です!!(すみません、関東人です)
◆分っている事
・旧バージョン(3.30)だとOK
・表示オプションで 20件⇒100件指定に変更すると100件表示される。⇒DBの問題ではない。
・クエリを offset=0 に手動で変更するとOK。⇒SQL間違ってる?
・エラーログの一覧でも同じ症状。⇒共通ライブラリのような根の深い部分?
・問題ないブログもあるらしい。⇒環境依存?
◆結論
俺が悪いんじゃねー。 MySQLのバージョンが古うございましたのが原因と判明してございます。私が悪うございました<m(_ , _)m>
どこかで解決してくれるかも?という期待で(^^;)藁に縋り、同じ症状が報告されているサイトにリンクさせて頂きました。
・データベースの不調? - Success,success
・MovableType4(ムーバブルタイプ4)でCSSが表示されちゃう件。 - ブログ記事の一覧ができないのは未解決。
解決!なの?
ということで、しょうがないのでPerlのソースを読んでみましたです、、、。
結論から申し上げますと、 lib/MT/ObjectDriver/SQL.pm の263行目がMySQLに対応していない形式っぽいのです。
MySQL限定の突貫工事ですが、以下の変更でオフセット表示もうまくいきました。
## return sprintf "LIMIT %d%s\n", $n, ## ($o ? " OFFSET " . int($o) : ""); return sprintf "LIMIT %s%d\n", ($o ? "" . int($o) . ", " : ""), $n;
解説:データベースの40番目(offset)から20件(limit)を指定でselectする場合、
select * from dbabc limit 20 offset 40;
というSQLが発行されるみたいです。PostgresSQLなどではOKですが、MySQLだと
select * from dbabc limit 40, 20;
なのれす。多分。もっとマトモな解決策がありましたら、itsに愛の手をお願いします。
△△使用前 ▽使用後
再度追記。
ごめんなさい、先ほど投稿したSQL構文の件ですが、MySQL 4.0 以降 だとPostgreSQLのそれと互換性があるようです。※MovebleType4の動作環境は、MySQL4.0以降♪
ここのレンタル共有サーバのMySQLはver3.2みたい...絶望的(はぁと)