PHP SOAP向客户端返回错误的值

时间:2011-05-14 17:40:02

标签: c# php soap

我正在尝试通过SOAP将我的(MySQL)数据库中的值返回给C#客户端。

服务器是用PHP编写的,我认为这是一切都出错的地方:

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

        $row = $result->fetch_assoc();
        return (int)$row['value'];
    }
}
无论数据库中的值是多少,

在C#中都会变为0。但是,

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

在C#中显示为正确的值(在本例中为5)。

我在这里缺少什么?似乎数据库中的数据不会正确返回到C#,但是在PHP中写入相同值(静态)的任何其他方式都将成功。

编辑: 我现在已经建立了一个PHP SOAP客户端,它接收与C#相同的值。所以似乎问题出在PHP SOAP服务器上,将错误的值传递给客户端(只要返回的值不是静态的)。

编辑: 我现在找到了解决问题的方法;我的WSDL文件有一个复杂的请求类型,即使它只需要一个简单的类型。将此复杂类型更改为简单类型,修复了问题。不要问我为什么 - 它对我没有丝毫意义!

1 个答案:

答案 0 :(得分:0)

你要求一个关联数组。这可能会返回更多的一个项目。