Передайте словарь C#<string, string> в PHP Nusoap

У меня есть веб-сервис PHP, работающий с использованием NuSoap. У меня есть функция PHP, которая выполняет хранимую процедуру на сервере MSSQL. Я пытаюсь понять, как передать словарь C# в веб-сервис, чтобы PHP мог использовать его как ассоциативный массив.

Предположим, проект находится достаточно далеко, где я заблокирован в 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; }

1 ответ

Решение

В конце концов, я изменил свой входной массив так, чтобы он ожидал стандартного массива, и выделил имя моего отчета и мои входные параметры как два отдельных ввода.

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;
}
Другие вопросы по тегам