无法使用Web服务PHP和Nusoap插入到数据库中

时间:2017-07-27 20:29:38

标签: php mysql database web-services nusoap

我正在为我的工作开发API,我们需要做一个Web服务,以后我们会使用它。我按照许多教程来做Web服务,但我仍然无法使其工作。我只需要Web服务可以插入到DB中,但它只返回bool(false)。我正在使用Nusoap lib。
这是我的index.php(服务),我使用XAMPP作为localhost。

<?php 
    require_once 'C:/xampp/htdocs/s/lib/nusoap.php';     

    $server = new nusoap_server(); 
    $server->configureWSDL("RecibirDatosXML", "urn:RecibirDatosXMLwsdl");
    $server->wsdl->schemaTargetNamespace = "urn:RecibirDatosXMLwsdl";

    function RecibirDatos($datos) {

      session_start();

            $servidor="localhost"; 
            $db="prueba"; 
            $user="root"; 
            $pass=""; 
            $conexion = mysqli_connect($servidor,$user,$pass,$db);

             $sql = "INSERT INTO registro (Nombre,Apellido,Email,Usuario,Contraseña) VALUES('Nombasrae, 'Apellido', 'Email', 'Usuario', 'Contraseña')";
            mysqli_query($conexion,$sql) or die ("Error"); //I think the error is here
               mysqli_close($conexion);


        return "Hi $datos "; //If Insert then return it
    }

    $server->register(
        "RecibirDatos",
        array('datos' => 'xsd:string'), // Parámetros de entrada
        array('return' => 'xsd:string'),
        'urn:RecibirDatosXMLwsdl', // Nombre del workspace
        'urn:RecibirDatosXMLwsdl#RecibirDatos', // Acción soap
        'rpc', // Estilo
        'encoded', // Uso
        'Manda los datos para ser procesados' // Documentación
    );

    $HTTP_RAW_POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : '';

    $server->service($HTTP_RAW_POST_DATA);

   ?>

这是我使用Web服务的prueba.php ......

<?php
require_once 'C:/xampp/htdocs/s/lib/nusoap.php';
$client = new nusoap_client('http://localhost/s/index.php?wsdl');

$result = $client->call('RecibirDatos',array('datos' => 'Clark'));

      if ($client->fault) {
           echo 'Error: ';
           print_r($result);
      } else {
         // check result
      $err_msg = $client->getError();
      if ($err_msg) {
          // Print error msg
         echo 'Error: '.$err_msg;
      } else {
          // Print result
         echo 'Result: ';
         print_r($result);
      }
   }
?>

Web服务只回答我&#34; bool(false)&#34;,如果我评论数据库代码,它可以运行并返回我&#34;嗨Clark&#34;。我执行SQL时发生错误。

调试Web服务的答案是:

  

错误:响应不是text / xml类型:text / html;字符集= UTF-8

我认为错误发生在sql中,因为如果我删除&#34;或者死掉&#34;指令 它打印&#34;嗨Clark&#34;,所以我认为,由于一个奇怪的原因,SQL查询不能成功,然后去&#34;或死&#34;并且该服务尝试打印&#34;错误&#34;然后Web服务回答我&#34;错误:响应不是text / xml类型:text / html;字符集= UTF-8&#34;

0 个答案:

没有答案