スタッフブログ

  • 最新配信
  • RSS

bulletinのテーブル名不正規問題を修正する

naoto : XOOPS » モジュール 2008/12/26 9:00

Blogger's Avatar

こんにちわ、なおとです。

今日の話題は、よく使う bulletin(ニュース)モジュールの問題点を修正したことについてです。



問題の状況

  • Windows環境で作成したDBのデータをUNIX環境に持って行った場合
  • windowsでXOOPSを運用していると、この現象は顕在化しない
  • ルート側のdirnameに大文字を混在させてインストール/利用している
  • テーブル名は小文字で作られる
  • しかしテーブル名にアクセスするとき、〜$xoopsDB->prefix($mydirname.'_topics')〜というコードでテーブル名をつくってクエリを生成している
  • $mydirnameには大文字が含まれていて、内部的にはそのテーブル名は存在しない、というエラーが起こる

影響を受けるバージョン(調べた部分のみ)

解決方法

prefix()を呼んでいる箇所を全てチェックし、必要に応じてstrtolower()を挟む

他の解決方法も検討しましたが、今回は上記対応を行いました。

修正用の差分ファイル

bulletin テーブル名不正規問題修正パッチ (ダウンロード)

2008.12.26 13:40 追記:
この現象は、 Windows環境で作成したDBのデータをUNIX環境に持って行った場合に限定されます。
通常の環境の場合、上記の差分ファイルパッチを当てると、逆に動作しなくなります。
ただ、WARPなどの環境でデータを作成してから、UNIX環境にデータを移行して運用なんてケースも考えられるので、その場合は上記パッチを適用して頂いた方が良いと思われます。

トラックバック

スタッフブログ最新
カテゴリ一覧

〒104-0061 東京都中央区銀座1丁目3番3号 G1ビル7階
お問い合わせ TEL 03-3524-8860

Copyright(c) 2012 RYUS.All Rights Reserved.