1.serverDataFromXml
<?php
function dataFromPlmXml()
{
$dbhost = 'localhost'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if (! $conn) {
die('Could not connect: ' . mysqli_error());
}
echo '数据库连接成功!';
mysqli_query($conn, "set names utf8");
mysqli_select_db($conn, 'test1');
$xml_array = simplexml_load_file('data.xml'); // 将XML中的数据,读取到数组对象中
$task_id_plm = $xml_array->workflow_plm['task_id_plm'];
$task_name = $xml_array->workflow_plm['task_name'];
$task_path = $xml_array->workflow_plm['task_path'];
$approve_emp_no = $xml_array->workflow_plm['approve_emp_no'];
$approve_name = $xml_array->workflow_plm['approve_name'];
$status = $xml_array->workflow_plm['status'];
$created_time = $xml_array->workflow_plm['created_time'];
$part_no = $xml_array->part_no_file['part_no'];
$site = $xml_array->part_no_file['site'];
$version_no = $xml_array->part_no_file['version_no'];
$version_no_seq = $xml_array->part_no_file['version_no_seq'];
$file_path = $xml_array->part_no_file['file_path'];
$file_name = $xml_array->part_no_file['file_name'];
$create_emp_no = $xml_array->part_no_file['create_emp_no'];
$create_owner = $xml_array->part_no_file['create_owner'];
$status = $xml_array->part_no_file['status'];
$lm_time = $xml_array->part_no_file['lm_time'];
$sql1 = "insert into workflow_plm" . "(task_id_plm,task_name,task_path,approve_emp_no,approve_name,status,created_time)" . "values" . "('$task_id_plm','$task_name','$task_path',
'$approve_emp_no','$approve_name','$status','$created_time'
)";
$sql2 = "insert into part_no_file" . "(part_no,site,version_no,version_no_seq,file_path,file_name,create_emp_no,create_owner,status,lm_time)" . "values" . "('$part_no','$site','$version_no','$version_no_seq',
'$file_path','$file_name','$create_emp_no','$create_owner',
'$status','$lm_time')";
$result1 = mysqli_query($conn, $sql1);
$result2 = mysqli_query($conn, $sql2);
if (! $result2) {
die('无法插入数据2: ' . mysqli_error($conn));
}
echo '1数据插入成功!';
if (! $result1) {
die('无法插入数据1: ' . mysqli_error($conn));
}
echo '2数据插入成功!';
mysqli_close($conn);
print_r($task_id_plm);
return "success! ";
}
echo dataFromPlmXml();
?>
2.serverDataFromClient
<?php
header("content-type:text/html;charset=utf-8");
ini_set("soap.wsdl_cache_enabled", "0");//禁用WSDL缓存功能
require_once('./lib/nusoap.php');
// Create the server instance
$server = new soap_server();//建立一个soap服务
$server->configureWSDL('server', 'urn:server');
$server->wsdl->schemaTargetNamespace = 'urn:server';
// SOAP complex type return type (an array/struct)
$server->wsdl->addComplexType(
'Person',
'complexType',
'struct',
'all',
'',
array('id_user' => array('name' => 'id_user',
'type' => 'xsd:int'))
);
//定义数据结构接收数据
$server->wsdl->addComplexType(
'workflow_plm',
'complexType',
'struct',
'all',
'',
array('task_id_plm' => array('name' => 'task_id_plm', 'type' => 'xsd:string'),
'task_name'=>array('name'=>'task_name','type'=>'xsd:string'),
'task_path'=>array('name'=>'task_path','type'=>'xsd:string'),
'approve_emp_no'=>array('name'=>'approve_emp_no','type'=>'xsd:string'),
'approve_name'=>array('name'=>'approve_name','type'=>'xsd:string'),
'status'=>array('name'=>'status','type'=>'xsd:string'),
'created_time'=>array('name'=>'created_time','type'=>'xsd:datetime'),
)
);
$server->wsdl->addComplexType(
'part_no_file',
'complexType',
'struct',
'all',
'',
array('part_no' => array('name' => 'part_no','type' => 'xsd:string'),
'site'=>array('name'=>'site','type'=>'xsd:string'),
'version_no'=>array('name'=>'version_no','type'=>'xsd:string'),
'version_no_seq'=>array('name'=>'version_no_seq','type'=>'xsd:string'),
'file_path'=>array('name'=>'file_path','type'=>'xsd:string'),
'file_name'=>array('name'=>'file_name','type'=>'xsd:string'),
'create_emp_no'=>array('name'=>'create_emp_no','type'=>'xsd:string'),
'create_owner'=>array('name'=>'create_owner','type'=>'xsd:string'),
'status'=>array('name'=>'status','type'=>'xsd:string'),
'lm_time'=>array('name'=>'lm_time','type'=>'xsd:datetime'),
)
);
// Register the "hello" method to expose it 服务器定义的soap调用方法
$server->register('hello',
array('username' => 'xsd:string'), // parameter
array('workflow_plm'=>'tns:workflow_plm'),//客户端传来的变量
array('part_no_file'=>'tns:part_no_file'),
array('return' => 'xsd:string'), // output
'urn:server', // namespace
'urn:server#helloServer', // soapaction
'rpc', // style
'encoded', // use
'Just say hello'); // description
// Implement the "hello" method as a PHP function
function hello($username) {
$dbhost = 'localhost'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysqli_error());
}
echo '数据库连接成功!';
mysqli_query($conn , "set names utf8");
mysqli_select_db( $conn, 'test1' );
/*
$sql1="update workflow_plm set task_id_plm='".array(['task_id']['name'])."',
task_name='".array(['task_name']['name'])."',
task_path='".array(['task_path']['name'])."',
approve_emp_no='".array(['approve_emp_no']['name'])."',
approve_name='".array(['approve_name']['name'])."',
status='".array(['status']['name'])."',
created_time='".array(['created_time']['name'])."',
";
$sql2="update part_no_file set site='".array(['site']['name'])."',
version_no='".array(['version_no']['name'])."'',
version_no_seq='".array(['version_no_seq']['name'])."'',
file_path='".array(['file_path']['name'])."',
file_name='".array(['file_name']['name'])."',
create_emp_no='".array(['create_emp_no']['name'])."',
create_owner='".array(['create_owner']['name'])."',
tatus='".array(['tatus']['name'])."';
lm_time='".array(['lm_time']['name'])."'
";
*/
$result1 = mysqli_query($conn,$sql1);
$result2 = mysqli_query($conn,$sql2);
if(! $result2)
{
die('无法插入数据2: ' . mysqli_error($conn));
}
echo '数据插入成功!';
if(! $result1)
{
die('无法插入数据1: ' . mysqli_error($conn));
}
echo '数据插入成功!';
mysqli_close($conn);
}
// Use the request to invoke the service
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)
? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>