2011-12-17 22 views
1

私は、API拡張の形式でMediaWiki 1.16の拡張機能を開発しています。私は、データベースアクセス機能wfGetDBを使用していますが、完全なエラーメッセージがさえLocalSettings.phpに次の行を含めることで、表示されていないので、私はそれが難しいのデバッグに見つける:完全なエラーの説明を表示

error_reporting(E_ALL); 
ini_set('display_errors', 1); 
//... rest of the file ... 
$wgShowExceptionDetails = true; 

ここで私が得るスタックの例です。

#0 /srv/www/htdocs/wotp/cd/includes/db/Database.php(538): DatabaseBase->reportQueryError('Unknown column ...', 1054, 'SELECT languag...', 'cdDictList::exe...', false) 
#1 /srv/www/htdocs/wotp/cd/includes/db/Database.php(874): DatabaseBase->query('SELECT languag...', 'cdDictList::exe...') 
#2 /srv/www/htdocs/wotp/cd/extensions/CommunityDictionary/includes/cdDictList.class.php(30): DatabaseBase->select('user_dictionary...', Array, Array, 'cdDictList::exe...', Array, Array) 
#3 /srv/www/htdocs/wotp/cd/includes/api/ApiMain.php(595): cdDictList->execute() 
#4 /srv/www/htdocs/wotp/cd/includes/api/ApiMain.php(338): ApiMain->executeAction() 
#5 /srv/www/htdocs/wotp/cd/includes/api/ApiMain.php(322): ApiMain->executeActionWithErrorHandling() 
#6 /srv/www/htdocs/wotp/cd/api.php(115): ApiMain->execute() 
#7 {main} 

ので、私は、例えば未知である列を知ることができます...の後ろに隠れているかを知る方法はありますか?

答えて

1

私は自分自身で答えを見つけました。ここでは、例外をキャッチし、それを表示するためのコードは次のとおりです。

try{ 
    $result = $this -> dbr -> select(...select code here...); 
} 
catch (Exception $e){ 
    error_log($e->getMessage()); 
    ApiBase :: dieDebug(__METHOD__, $e->getMessage()); 
} 

エラーは、この形式で提供されます:

<error code="internal_api_error_MWException" info="error text"> 
関連する問題