无法连接sqlsrv php调用存储过程

时间:2013-05-22 04:45:42

标签: php sqlsrv

我使用sqlsrv和PHP在SP HIt之下。片段不适合我。对于下面的代码我得到“SQL SRV QUERY NOT RAN”。请提供您的建议,如何实现php + sqlsrv + SP。

$query = "{CALL call_user_name}";

if ( ($res = sqlsrv_query( CONNSTR, $query)) )
{
   do 
   {
      if ( sqlsrv_num_fields($res) ) // one way to check if results returned.

      {
         while( ($row = sqlsrv_fetch_array( $res, $type)) )
         {
            $data[] = $row; 
         }
      }else{echo "sqlsrv_num_fields not working";}
   } while ( sqlsrv_next_result($res) ) ;
   sqlsrv_free_stmt($res); // not essential, but good form if your script does lots of other stuff.
}else{
       echo "SQL SRV QUERY NOT RAN ";die( print_r( sqlsrv_errors(), true));
}

2 个答案:

答案 0 :(得分:0)

有一些可能的原因导致您的错误,我的建议是:更改此行

  

回显“SQL SRV QUERY NOT RAN”

  

die(print_r(sqlsrv_errors(),true));

然后你可以看到导致错误的原因。

答案 1 :(得分:0)

示例PHP SQL Srv存储过程调用(带有参数)。希望这会帮助您获得想法。 (用于通过Ajax请求调用此php文件,并在调用SP后返回数据)

smeSelectDrp是SP名称

$sql = "EXEC smeSelectDrp";

$stmt = sqlsrv_prepare($conn, $sql);
if (!sqlsrv_execute($stmt)) {
echo "Error Retrieving Data";
die;
}
else 
{
while($row  = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {
$value[] = $row;
}
echo json_encode($value);
}