【问题标题】:Unable to connect sqlsrv php call stored procedure无法连接sqlsrv php调用存储过程
【发布时间】:2013-05-22 04:45:42
【问题描述】:

我使用 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));
}

【问题讨论】:

  • 当你的sqlsrv_query为空时,你可能不需要$params
  • 任何建议??????????
  • CONNSTR 是什么意思?你的意思是$CONNSTR?如果是拼写错误,请输入您的连接字符串代码。
  • 数据库连接字符串。
  • 请输入您的连接字符串代码

标签: php sqlsrv


【解决方案1】:

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

echo "SQL SRV QUERY NOT RAN"

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

然后你就可以看到是什么导致了错误。

【讨论】:

  • 获取 SQL SRV QUERY NOT RAN 数组 ( [0] => 数组 ( [0] => 01000 [SQLSTATE] => 01000 [1] => 0 [code] => 0 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server] RYBACK [message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]RYBACK ) ) 但是 sqlsrv_query 失败,在模具中获得上述数组(print_r())
  • 获取数组 ( [0] => 数组 ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -28 [code] => -28 [2] =>查询的活动结果不包含字段。[message] => 查询的活动结果不包含字段。))
  • 也许这个问题可以帮到你:stackoverflow.com/questions/4336473/…
【解决方案2】:

示例 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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    相关资源
    最近更新 更多