Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法访问实现nuSOAP的mySQL?_Php_Mysql_Web Services_Nusoap_Mysql Connect - Fatal编程技术网

Php 无法访问实现nuSOAP的mySQL?

Php 无法访问实现nuSOAP的mySQL?,php,mysql,web-services,nusoap,mysql-connect,Php,Mysql,Web Services,Nusoap,Mysql Connect,这是我进度的更新,仍然收到类似错误: 因此,在调用使用mySQLi查询的函数时,我基本上不会从我的nuSOAP web服务获取返回数据 我认为这是因为nuSOAP(目前还没有证据),不管怎样,这里有一个包含nuSOAP的代码: <?php // include the SOAP classes require_once('nuSOAP/lib/nusoap.php'); $host = 'mysql13.000webhost.com'; $user = 'a8434864_update

这是我进度的更新,仍然收到类似错误:

因此,在调用使用mySQLi查询的函数时,我基本上不会从我的nuSOAP web服务获取返回数据

我认为这是因为nuSOAP(目前还没有证据),不管怎样,这里有一个包含nuSOAP的代码:

<?php
// include the SOAP classes
require_once('nuSOAP/lib/nusoap.php');

$host = 'mysql13.000webhost.com'; 
$user = 'a8434864_updater'; // MySQL login username
$pass = '***'; // MySQL login password
$database = 'a8434864_lokiupd'; // Database name

$con=mysqli_connect($host,$user,$pass,$database);

// Check connection
if (mysqli_connect_errno($con))
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }


function OnlineStatus(){
return true;
}

function GetRegTitle(){
global $con;
$SQL = "SELECT app_reg_title FROM a8434864_lokiupd._misc WHERE id = 0";
$result = mysqli_query($con,$SQL); // ERROR LINE 26
if(!$result) {
    die(mysqli_error($con)); // ERROR LINE 28
}
$row = mysqli_fetch_row($result);
return $row[0];
}

mysqli_close($con);


// create the server object
$server = new nusoap_server();

// Initialize WSDL support
$server->configureWSDL('userdatawsdl', 'urn:userdatawsdl');


$server->register('OnlineStatus',       array(), array('result' => 'xsd:boolean'));
$server->register('GetRegTitle',        array(), array('result' => 'xsd:string'));

if (isset($error))
{
    $fault =
            $server->fault('soap:Server','',$error);
}

// send the result as a SOAP response over HTTP $HTTP_RAW_POST_DATA
$post = file_get_contents('php://input');
$server->service($post);
?>

从客户端(我使用的客户端不是我自己制作的,它是firefox的SOA客户端插件)我得到的错误是:

PHP错误消息

警告:mysqli_query():无法在中获取mysqli /home/a8434864/public_html/webservice/webservice.php联机 二十六

PHP错误消息

警告:mysqli_error()[function.mysqli error]:无法 获取mysqli /home/a8434864/public_html/webservice/webservice.php联机 二十八

然而,该代码可以完美地工作(与上面相同,但没有nuSOAP):


发生了什么事?有人能帮我吗?

mysql\u query()
使用可选的链接标识符作为选项

resource mysql_query ( string $query [, resource $link_identifier = NULL ] )
如果链接标识符没有传入(而您没有传入),它将尝试“猜测”您的连接

如果未指定链接标识符,则假定mysql_connect()打开的最后一个链接如果没有找到这样的链接,它将尝试创建一个链接,就像调用mysql_connect()时没有参数一样。


换句话说,在后一个示例中,错误消息意味着它找不到您的连接,并隐式地尝试为您打开一个新的连接。我怀疑这与nuSOAP调用您的方法所使用的回调系统有关,与上一个示例中直接调用方法不同。

修复了它。只有在注册了SOAP函数之后,才能关闭mysql连接

像这样:

$server->register('OnlineStatus',       array(), array('result' => 'xsd:boolean'));
$server->register('GetRegTitle',        array(), array('result' => 'xsd:string'));
mysqli_close($con);
我以前所做的:

mysqli_close($con);
$server->register('OnlineStatus',       array(), array('result' => 'xsd:boolean'));
$server->register('GetRegTitle',        array(), array('result' => 'xsd:string'));

希望这能帮助那些陷入困境的人:)

也许mysql服务器坏了。。要你的钱不是真的,你没有读整篇文章。你真的确定错误来自的文件吗?行号和文件内容与错误不匹配1)是否
$link
连接返回访问被拒绝?你有没有在错误的前面放点东西来确认?2) 无意冒犯,但既然你是这方面的老手而不是新手,为什么不使用
mysqli
?那么你就不用担心幻象连接设置了。说到aynber的观点,数据库连接是否在soap功能的范围内?如果您尝试
global$link$结果=mysql\u查询($SQL,$link)?感谢您提供有用的信息!现在的问题更容易解决。另外,我想我不会再使用mysql扩展了:P
mysqli_close($con);
$server->register('OnlineStatus',       array(), array('result' => 'xsd:boolean'));
$server->register('GetRegTitle',        array(), array('result' => 'xsd:string'));