OpenPNEでプロフィール項目を追加しても管理画面に表示が反映されない件

2007年10月17日 23:20 OpenPNEでプロフィール項目を追加しても管理画面に表示が反映されない件

ちょっとSNS用のCMS「OpenPNE」をインストールする機会があったんですが、つまらないところでハマった(というほどでもないけど)のでメモ。

とりあえず普通にインストールは完了し、管理画面にログイン。

試しにプロフィールの項目を追加してみようと思ってやってみたら、何度やっても追加されない。

おっかしいなぁ、と思ってMySQLデータベースの中身を見てみたら、テーブル「c_profile」に、普通に新規に追加したプロフィール項目のデータは入ってる。

ということは、どうも管理画面側でデータベースを select した際に、なんらかの原因でデータを引っ張ってこれてないんだな、と目星がついたので、該当する箇所のPHPソースコードを元にざっと grep してみたところ、あっさり原因判明。

OpenPNEの設定ファイル「config.php」には、

// MySQL ヒント使用設定
define('OPENPNE_USE_MYSQL_HINT', true);

という箇所があるんですが、「MySQL ヒント」って何だ?と思いつつ、とりあえずデフォルトで true になってるからそのままでいいや、と思ったら、そこが原因だったらしい。

先ほどの管理画面のプロフィール項目のデータを、テーブル「c_profile」から select してくる際に、MySQL ヒント使用設定(OPENPNE_USE_MYSQL_HINT)が true だと、SQL文の中に「/*! */」で括られたコメントを挿入してるみたい。

で、何故かそのコメントが入ってると、データを引っ張って来れなくて、データベースにはちゃんとデータが入っているのに、管理画面には項目が表示されない、ということになっていたようです。
なんでそのコメントが入ってると駄目なのかは不明(つまり原因判明と言いつつ、本当の意味では原因は判明してないわけです……)。

まあ、とにかくこの「MySQL ヒント使用設定」をオフにすれば、解決しました。

// MySQL ヒント使用設定
define('OPENPNE_USE_MYSQL_HINT', false);

けど、この「MySQLヒント」って言うのは何なんだろう?
ググっても特にそれらしきものは引っかからなくて、よくわかりません。
誰か教えて、エロい人。

関連するブログ記事
カテゴリー
MySQL | OpenPNE
タグ
CMS | MySQL | OpenPNE | PHP | SNS | オープンソース

コメント(6)