2014-07-25 51 views
0

我有一個使用NuSoap運行的PHP Web服務。我有一個PHP函數在MSSQL服務器上執行存儲過程。我試圖瞭解如何將C#字典傳遞給Web服務,以便它可以像PHP中的關聯數組一樣使用。將C#Dictionary <string,string>傳遞給PHP Nusoap

假設該項目已經足夠我一直鎖定到NuSoap和C#的地方。我願意改變PHP函數,但如果這種方法是不可能的,則以不同的方式傳遞我的C#參數。

PHP函數被寫入使用關聯數組,像這樣:

function runReport($input) { 

global $cwlink; 

$query = "EXEC localhost.dbo.".$input['report']; 

$first = true; 
foreach ($input as $key => $value) { 
    if($first) { 
     $first = false; 
     continue; 
    } 

    $query .= " @".$key." = '".$value."',"; 
} 

$query = substr($query, 0, -1); 

$results = mssql_query($query, $cwlink); 
$rows = mssql_fetch_array($results); 

$return = array(); 

do { 
    do { 
     $return[] = $rows; 
    }while($rows = mssql_fetch_array($results)); 
}while(mssql_next_result($results)); 

return $return; } 

回答

0

最後,我結束了修改我的輸入陣列的期望標準陣列,並分離出我的報告的名字和我的輸入參數作爲兩個單獨的輸入。

function runReport($reportName, $input) 
{ 
    global $cwlink; 

    $query = "EXEC localhost.dbo.".$reportName; 

    for ($i = 0; $i < count($input); $i = $i + 2) { 
     $query .= " @".$input[$i]." = '".$input[$i + 1]."',"; 
    } 

    $query = substr($query, 0, -1); 

    $results = mssql_query($query, $cwlink); 
    $rows = mssql_fetch_array($results); 

    $return = array(); 

    do { 
     do { 
      $return[] = $rows; 
     }while($rows = mssql_fetch_array($results)); 
    }while(mssql_next_result($results)); 

    return $return; 
} 
相關問題