Передайте словарь 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;
}