如何处理 Mediawiki 扩展的错误条件?
我写了一个扩展名, 使用几个存储程序从 SQL 服务器表格中检索数据 。
在 DB 或服务器关闭之前, 所有操作都正常, 直至 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;
}