PHP和Web服务

时间:2009-11-04 13:38:38

标签: php web-services

我有一个wsdl文件,我试图从php类调用它。我使用以下代码:

<?php

include(“dbconn.php”);

类dataclass {

function getCountries()
{
    $connection = new dbconn();

    $sql = "SELECT * FROM tblcountries";

    $dataset = $connection -> connectSql($sql);

    return $dataset;
}

function getTest()
{
    $connection = new dbconn();

    $sql = mysql_query('CALL sp_getTest');

    $dataset =  $connection -> connectSql($sql);

    return $dataset;
}


##-------------------------------------------CUSTOMER METHODS-------------------------------------------
function registerCustomer($username,$name,$surname,$password,$email,$country,$tel)
{
    $connection = new dbconn();

    $sql="INSERT INTO tblcustomer (customer_username, customer_password, customer_name, customer_surname,
        customer_email, customer_country, customer_tel) 
        VALUES('$username','$name','$surname','$password','$email','$country','$tel')";

    $dataset = $connection -> connectSql($sql);

}



ini_set("soap.wsdl_cache_enabled", "0");
// start the SOAP server - point to the wsdl file
$webservice = new SoapServer("http://localhost/dataobjects/myWebservice.wsdl", array('soap_version' => SOAP_1_2));

// publish methods
$webservice->addFunction("getCountries");
$webservice->addFunction("registerCustomer");
// publish
$webservice->handle();

} ?&GT;

始终是ini_set("soap.wsdl_cache_enabled", "0");

给我一​​个问题

错误是:

Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION in C:\Program Files\xampplite\htdocs\dataobjects\dataClass.php on line 47

3 个答案:

答案 0 :(得分:1)

我相信这是因为你在课堂上调用了ini_set()。将它放在文件的顶部或构造函数中(如果有的话)。

class dataClass
{
    function registerCustomer()
    {
       // some stuff
    }

    ini_set(/*args*/); // it's illegal to put instructions in the body of the class
}

现在我看到了整件事。您可能希望在第47行之前使用结束语来关闭该类。

答案 1 :(得分:0)

你让解析器认为“0”是一个字符串,而不是一个数字,请删除引号!

修改1 如果这不起作用,您的错误必须在该行之前,请发布完整的代码以供审核。

编辑2 您提供的代码在类中运行,您在使用ini_set的行之前错过了一个方括号。

答案 2 :(得分:0)

将最后一个}移到ini_set(...)

前面

顺便说一下,你说你想要调用一个Web服务,但是你正在创建一个可能被其他人调用的服务器。

致电网络服务,请尝试以下操作:

try{
    $client = new SoapClient($service, array('location' =>"http://example.org/myWebService"));
    $parameter1 = new myWebServiceParameter();
    $result = $client->myWebServiceFunction($parameter1);
} catch (Exception $e) {
    // handle errors
}

myWebServiceParameter必须是具有相同名称的成员变量foreach WSDL消息属性的任何类。 myWebServiceFunction是Web服务方法的名称。