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


PHP SOAP returning wrong values to clients

我正在尝试通过 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 文件有一个复杂的请求类型,即使它只需要一个简单的类型。将此复杂类型更改为简单类型,解决了该问题。不要问我为什么 - 这对我来说没有丝毫意义!

您正在请求一个关联数组。这可能会返回多个项目。