这是我进度的更新,仍然会出现类似的错误:
所以基本上我在调用使用mySQLi查询的函数时没有从我的nuSOAP Web服务获得返回数据
我认为这是因为nuSOAP(尚未证明),无论如何这里是nuSOAP的代码:
// 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 Error Message
Warning: mysqli_query(): Couldn’t fetch mysqli in
/home/a8434864/public_html/webservice/webservice.php on line
26
PHP Error Message
Warning: mysqli_error() [function.mysqli-error]: Couldn’t
fetch mysqli in
/home/a8434864/public_html/webservice/webservice.php on line
28
然而,这段代码完美无瑕(它与上面相同,但没有nuSOAP):
$host = 'mysql13.000webhost.com'; // Host name Normally 'LocalHost'
$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 _misc WHERE id = 0";
$result = mysqli_query($con,$SQL);
if(!$result) {
die(mysqli_error($con)); // TODO: better error handling
}
$row = mysqli_fetch_row($result);
return $row[0];
}
echo '1:
';
print_r(OnlineStatus());
echo '
2:
';
print_r(GetRegTitle());
mysqli_close($con);
?>
发生什么事可以帮助我吗?
解决方法:
mysql_query()将可选的链接标识符作为选项;
resource mysql_query ( string $query [, resource $link_identifier = NULL ] )
如果未传入链接标识符(并且您没有),它将尝试“猜测”您的连接;
If the link identifier is not specified, the last link opened by mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() was called with no arguments.
换句话说,在后一个示例中,错误消息暗示它无法找到您的连接并隐式尝试为您打开一个新连接.我怀疑它与nuSOAP调用你的方法所使用的回调系统有关,而不是你在前面的例子中直接调用它们.
标签:php,mysql,web-services,nusoap,mysql-connect
来源: https://codeday.me/bug/20190629/1326003.html