首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储过程在MSQL中运行良好,但现在在PHP中工作。

存储过程在MSQL中运行良好,但现在在PHP中工作。
EN

Stack Overflow用户
提问于 2019-11-10 11:50:31
回答 1查看 270关注 0票数 0

当我从我的移动应用程序或web浏览器调用它时,SQL存储过程返回NULL,但是使用MSSQL软件调用SQLPro时,相同的过程返回它必须返回的内容。

代码语言:javascript
复制
    if( $conn == FALSE ) {
        echo "Connection failed.";
        die( print_r( sqlsrv_errors(), true));
    }


    $query = "EXEC dbo.sp_Pok_Details @oe=17,@code='5907769000409'";

    $getProducts = sqlsrv_query($conn, $query);  


    if ($getProducts == FALSE) 
    {
        die(FormatErrors(sqlsrv_errors()));  
    } 


    while($row = sqlsrv_fetch_array($getProducts, SQLSRV_FETCH_ASSOC))  
    {  
        $returnArray[] = $row;
    }  

    echo json_encode($returnArray);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-11 07:14:22

解释:

您需要将SET NOCOUNT ON作为存储过程的第一行,以防止将受result语句影响的行数作为结果集的一部分返回。这就是零结果的原因。

如果无法更改存储过程,请使用sqlsrv_next_result()使下一个结果处于活动状态,然后获取数据。

请注意,始终使用准备好的语句和参数化查询来防止SQL注入。使用用于Server的,函数sqlsrv_query()同时执行语句准备和语句执行,并可用于执行参数化查询。

示例(基于代码)

代码语言:javascript
复制
<?php

    if( $conn === false ) {
        echo "Connection failed.";
        die( print_r( sqlsrv_errors(), true));
    }

    $query = "EXEC dbo.sp_Pok_Details @oe = ?, @code = ?";
    $params = array(17, '5907769000409');
    $getProducts = sqlsrv_query($conn, $query, $params);  
    if ($getProducts === false) {
        die( print_r( sqlsrv_errors(), true));  
    } 

    // Just for test - make additional call(s) to get the count of the active result sets
    do {
       while($row = sqlsrv_fetch_array($getProducts, SQLSRV_FETCH_ASSOC)) {  
          echo 'Current rowset'.'<br>';
       }  
    } while (sqlsrv_next_result($getProducts));
    // Or if you have only one result set
    //while ($row = sqlsrv_fetch_array($getProducts, SQLSRV_FETCH_ASSOC)) {  
    //  $returnArray[] = $row;
    //}

    echo json_encode($returnArray);
?>  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58788361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档