我正在尝试通过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文件有一个复杂的请求类型,即使它只需要一个简单的类型。将此复杂类型更改为简单类型,修复了问题。不要问我为什么 - 它对我没有丝毫意义!
答案 0 :(得分:0)
你要求一个关联数组。这可能会返回更多的一个项目。