我有一个php / mysql站点,它还连接到mssql数据库以运行一些存储过程。有一个表格要求邮政编码,邮政编码的距离,并有效地返回邮政编码距离内的商店。出于某种原因,当运行此函数并且没有结果时,表单会正确返回,并显示一条消息,指出未找到任何结果。如果由于某种原因有结果,浏览器软重定向回主页。如果我注释掉函数的mssql_execute部分,重定向就不会发生,显然我没有得到任何结果。当我将mssql_execute放入并运行相同的请求时,页面被重定向。存储过程执行的函数如下所示。
function getCompaniesByAddress(){
global $msdb;
//initiate function
$proc = mssql_init('usp_Search_Scope_And_Range', $msdb);
//Load Parameters
mssql_bind($proc, '@SuperscopeID', $_POST['activity'], SQLINT4, false, false, 10);
mssql_bind($proc, '@ScopeID', $_POST['scheme'], SQLINT4, false, false, 10);
mssql_bind($proc, '@PCode', $_POST['postcode'], SQLVARCHAR, false, false, 10);
mssql_bind($proc, '@Distance', $_POST['distance'], SQLINT4, false, false, 10);
try
{
$result = mssql_execute($proc);
//If the exception is thrown, this text will not be shown
}
//catch exception
catch(Exception $e)
{
echo 'Message: ' .$e->getMessage();
}
//Execute Procedure
//$result = mssql_execute($proc);
//Free Memory
mssql_free_statement($proc);
while ($row = mssql_fetch_assoc($result))
$results[] = $row;
$res = array_chunk(sortDataSet($results,'Mileage_FL'),20);
return $res[0];
}
答案 0 :(得分:2)
你不能在这里雇用try
/ catch
吗?然后你至少可以打印出正在返回的错误消息(你显然没有显示任何只是让你进入重定向的全局错误处理)。我不是一个PHP人,所以我不知道这个语法是否100%准确,但你可以尝试类似的东西:
try
{
$result = mssql_execute($proc);
while ($row ...
...
return $res[0];
}
catch (Exception $e)
{
echo ($e->getMessage());
}
(基于此处的示例:try catch statement in PHP where the file does not upload)