Mediawiki 拡張機能でエラー状態をどのように処理しますか?
いくつかのストアド プロシージャを使用して SQL Server テーブルからデータを取得する拡張機能を作成しました。
DB またはサーバーがオフラインになるまで、すべて正常に動作し、その時点で mssql_connect 呼び出しが失敗します。私はこれに対処するための多くの方法を試しましたが、いずれもエラー 500 で失敗するか、空白のページにエラー テキストが表示され、どちらも wiki ページの読み込みが停止します。正常に失敗し、残りの wiki ページが正しく読み込まれるようにしたいと考えています。
明らかな何かが欠けていることはわかっていますが、何かアイデアはありますか?
以下は、DB に接続してページに値を返すために使用しているコードです。
function RetrieveFromDatabase( $sproc, $spparam )
{
$usr = "usr";
$pwd = "pwd";
$db = "BGInfo";
$host = "server";
$output = "";
// connect to database
$con = mssql_connect ($host, $usr, $pwd);
mssql_select_db($db);
/* prepare the statement resource */
$stmt=mssql_init($sproc, $con);
if (isset($spparam))
{
mssql_bind($stmt, '@MachineName', $spparam, SQLVARCHAR);
}
/* now execute the procedure */
if ($result = mssql_execute($stmt))
{
return $result;
}
else
{
return NULL;
}
}
function GetMachineTotalStorageInTBRender( $input, $args, $parser )
{
$parser->disableCache();
$output = "";
$result = RetrieveFromDatabase("TotalDriveSpaceByMachine", $input);
if ($result)
{
while($row = mssql_fetch_array($result))
{
// Assign Variables
$TotalTB = $row["TB"];
if(!is_null($TotalTB))
{
// Print Variables in Table
$output = $TotalTB." TB";
}
} // End While Loop
} // End If
return $output;
}