我正在尝试通过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-client,它接收与C#相同的值。因此,问题似乎出在PHP SOAP-server上,它将错误的值传递给客户端(只要要返回的值不是静态的)。
编辑:我现在已经找到了问题的解决方案;我的WSDL文件有一个复杂的请求类型,尽管它只需要一个简单的类型。将此复杂类型更改为简单类型,修复了此问题。不要问我为什么--这对我一点意义都没有!
发布于 2011-05-15 08:28:22
您正在请求一个关联数组。这可能会返回多个项目。
https://stackoverflow.com/questions/6003658
复制相似问题