DBIとかflockとかソートとか

correct.cgiで、どうもDBの更新がうまくいかないと思ったら、SQL文に余計なコンマが1個入ってたからでした。うーん、やっぱりSQLの本1冊持ってたほうがいいかもしれないねー。

UPDATE piyo
SET foo1 = bar1, foo2 = bar2
WHERE hoge = fuga;

これが正しいSQL文ね。変数名とか列名は適当だけど。で、間違えてたのが以下。

UPDATE piyo
SET foo1 = bar1, foo2 = bar2,
WHERE hoge = fuga;

SET句の最後に余計なコンマ。それだけのことなんだけど、気付くのにちょっと時間がかかりました。
delete.cgiも完成。ていうより、きちんと読んでみると、手を入れる必要がどこにもなかった。他のCGIと変数名の整合性を取るのに、1箇所だけ変数名を書き直したけど、それだけで終了。とりあえずこれで最低限の機能は実装完了。あとは、dl.cgiの2バイト文字の件と、ファイルの読み書きのときにきちんとflockをかけることと、関数のエラー処理。ただ、Win9x系だとflockつかえないんだよねー。Windowsだと、flockできるのはNT系だけだから。ワタシはWinXPだからflockできるけど、98SEとかMeだとflockが使えないはず。古いMacもだめ。OS XならBSDベースだから大丈夫。広義UNIXなら大抵どこでもflock可能だから、問題になるのはWin9x。対応としては、Config.pmで$Config{d_flock}をチェックすることかな。flock使ったほうが、確かに安全性は向上するけど、下手に使うと、portableでなくなるからねぇ。
ついでに検索結果のソート方法を指定できるように改良。ソートキーをファイルサイズ、登録時刻、ファイル名、ハッシュ、作者から選べるようにして、昇順・降順から選択。これでだいぶ扱いやすくなったと思う。コメントだけじゃなく、作者からも検索できるようにしておいた。まだ全体的にエラーチェックが甘いから、そのあたり少しずつ書き直していこう。CSSのデザインも作らなきゃ。
うーん、いくつかモジュール持ってきたほうが簡単に済ませられそうなところもあるし、いろいろモジュールのドキュメント読んでみよう。
JavaScriptの文法も覚えてないなぁ…