PHP SOAP возвращает неправильные значения клиентам - PullRequest
0 голосов
/ 14 мая 2011

Я пытаюсь вернуть значение из моей базы данных (MySQL) клиенту C # через SOAP.

Сервер написан на PHP, и я думаю, что там все идет не так:

class foo{
    function bar()
    {
        $result = $connection->query("SELECT value
                                      FROM table 
                                      WHERE id='$id'");

        $row = $result->fetch_assoc();
        return (int)$row['value'];
    }
}

Будет отображаться как 0 в C #, независимо от того, какое значение было в базе данных.Тем не менее,

class foo{
    function bar()
    {
        return 5;
    }
}

отображается как правильное значение (в данном случае 5) в C #.

Чего мне здесь не хватает?Кажется, что данные из базы данных не будут возвращены в C # правильно, но любые другие способы записи того же значения (статически) в PHP, будут успешными.

РЕДАКТИРОВАТЬ: Я сейчас настроил PHP SOAP-client, который получает те же значения, что и C #.Таким образом, похоже, что проблема в PHP-SOAP-сервере, сообщающем неверные значения клиенту (всякий раз, когда возвращаемое значение не является статическим).

РЕДАКТИРОВАТЬ: я нашел решение своей проблемы;Мой файл WSDL имел сложный тип запроса, хотя для него требовался только простой тип.Изменение этого сложного типа на простой, решило проблему.Не спрашивайте меня почему - это не имеет никакого смысла для меня!

1 Ответ

0 голосов
/ 15 мая 2011

Вы запрашиваете ассоциативный массив.Это может вернуть более одного предмета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...