2014-07-25 2 views
0

NuSoap을 사용하여 PHP 웹 서비스를 실행하고 있습니다. MSSQL 서버에서 저장 프로 시저를 실행하는 PHP 함수가 있습니다. C# 사전을 webservice에 전달하여 PHP에서 연관 배열처럼 사용할 수있는 방법을 이해하려고합니다.C# Dictionary <string, string> to 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; 
}