簡體   English   中英

如何在PHP中從存儲過程中遍歷多個結果集?

[英]How to loop through multiple result sets from stored procedure in PHP?

我試圖從SQL Server 2008中的存儲過程(SP)中獲得3個結果集,我有點不高興。

存儲過程

CREATE PROCEDURE db_abbTest
AS
BEGIN
        SET NOCOUNT ON;

        SELECT 1
        SELECT 2
        SELECT 3
        RETURN 0
END
GO

PHP代碼

<?php

$serverName = "server";
$connectionInfo = array("UID"=> "user", "PWD" =>"pass", "Database"=>"sample_db");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn )
{
    $sql = "db_AbbTest";
    $r = sqlsrv_query($conn, $sql, null, array(
            'Scrollable' => SQLSRV_CURSOR_STATIC,
            'SendStreamParamsAtExec'    => true
        ));
    var_dump($r);
        while( $obj = sqlsrv_fetch( $r))
        {
              var_dump($obj);
              var_dump(sqlsrv_fetch_array($r));
        }
     echo "Connection established.\n";
}
else
{
     echo "Connection could not be established.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Close the connection. */
sqlsrv_close( $conn);

SP返回三個結果(3x select語句),但是我似乎無法從查詢中獲取所有結果。 有任何想法嗎? 我嘗試了while(sqlsrv_fetch_object($r){//do something})但是沒有運氣。

我設法找到了解決此問題的方法,我不得不使用while循環,然后移至下一個結果:

$sql = "{call db_AbbTest}";
$r = sqlsrv_query($conn, $sql, null);
$i =0;
    while( $obj = sqlsrv_fetch_object($r))
    {
            echo $i;
         print_r($obj);
         sqlsrv_next_result($r);
         $i++;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM