我有以下功能:
public function query($sql)
{
$query = array(
"queryString"=>$sql
);
$queryWrapper = array(
"query"=>$query
);
try {
$result = $this->_client->__soapCall("query", $queryWrapper, null, $this->_header);
} catch (SoapFault $e) {
$this->_client->__getLastResponse();
}
return $result;
}
问题是我可以在var_dump('anything');exit;
之前使用__soapCall()
,并且看到“任何东西”。但是如果在var_dump('stuff');exit;
之后__soapCall()
,我只会得到一个空白页。我var_dump('something');exit;
处于困境,但我没有看到。它仍然只是一个空白页。我的问题是,可能是什么原因造成的?我认为,如果查询中的表不存在,或者查询根本出了点问题,就会出现某种错误。但是我绝对要蹲下来。
答案 0 :(得分:0)
我会尝试以下方案:
1。正确的例外
$this->_client
是标准\SoapClient
的实例吗?否则,您的catch
可能会忽略其他异常。如果您使用的是PHP 7.0
及更高版本,请尝试捕获\Throwable
;如果使用的是旧版本,请尝试捕获\Exception
。
2。独立运行
如果问题仍然存在,最好将此功能与您的代码库隔离开来,然后尝试单独运行它。您甚至可以尝试使用3v4l之类的在线工具。
3。 Xdebug
如果仍然找不到原因,则最好使用xdebug跟踪问题。您可以在这里找到Docker和PhpStorm的简单设置教程:https://medium.com/@pablofmorales/xdebug-with-docker-and-phpstorm-786da0d0fad2