オープンソースのナレッジベース「KBPublisher」に記事(ナレッジコンテンツ)を登録しようとした際に発生する「Database error!」の対処方法について覚書。
発生するエラーについて
オープンソースのナレッジベース「KBPublisher」に記事(ナレッジコンテンツ)を登録する際に、日本語の長い文字列を指定すると以下のエラーメッセージが表示されて登録ができない場合がある。
Database error!
It is possible server is overloaded. Try again or come back later.
エラーの対処方法
「KBPublisher」のコードの一部を修正することで上記エラーを回避し、日本語の長い文字列をタイトルに指定しても正常に登録ができるようになる。
以下に対処方法を記述する。
コードの一部を修正と書いたが、実際には1行のコードをコメントアウトするだけ。
対象ファイルは、"kb\admin\lib\eleontev\URL"フォルダの"RequestDataUtil.php"ファイル。
上記ファイルを開き、49行目 「$value = wordwra...」で始まる行をコメントアウトして実行されないようにする。
変更前
$value = wordwrap(trim(str_replace($rules['search'], $rules['replace'], $value)), $wordrap_num, ' ', 1);
変更後:
//$value = wordwrap(trim(str_replace($rules['search'], $rules['replace'], $value)), $wordrap_num, ' ', 1);
PHPでは、行頭に"//"があるとコメント扱いになるため実行されない。
変更したらファイルを上書き保存する。
以上で終了。
海外のオープンソースソフトを日本語環境で使うには割と苦労が多い...
ダブルバイトと文字コードのおかげでやられっぱなしだ。
コメント