运行存储过程的mssql_execute将浏览器重定向到站点主页,而不是满足请求

时间:2012-04-25 17:17:30

标签: php sql-server

我有一个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];
}

1 个答案:

答案 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