Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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 看起来我们没有XML文档_Php_Xml_Exception_Soap_Limit - Fatal编程技术网

Php 看起来我们没有XML文档

Php 看起来我们没有XML文档,php,xml,exception,soap,limit,Php,Xml,Exception,Soap,Limit,在PHP中使用SOAP时,我遇到了一些奇怪的问题。 同一个函数可以处理小数据,但当我的查询返回的行数超过X行时,它会导致异常“Uncaught SoapFault exception:[Client]看起来我们没有XML文档” 这是我的代码: <?php $cliente = new SoapClient(null, array('location' => $myserver,'uri' => 'urn:webservices')); ?> <select id="

在PHP中使用SOAP时,我遇到了一些奇怪的问题。 同一个函数可以处理小数据,但当我的查询返回的行数超过X行时,它会导致异常“Uncaught SoapFault exception:[Client]看起来我们没有XML文档”

这是我的代码:

<?php
$cliente = new SoapClient(null, array('location' => $myserver,'uri' => 'urn:webservices'));
?>
<select id="actividad" name="actividad" size="1" style="height:40px; width: 100%;">
<?php
$acs = $cliente->get_actividades();
foreach($acs as $actividad) {
echo "<option value='".$actividad['idactividad']."'>".$actividad['descripcion']."</option>";
}                                       
?>
</select>
该查询将产生大约37行。如果我在该查询中添加一个介于1到21行之间的“LIMIT”子句,它就可以正常工作,但如果超出这个范围,则会导致无xml异常


可能是内存问题吗??谁可以修复它?

您必须回显它,而不是像您那样返回值。例如,如果您回显
$datos
,它仍然无法工作,因为您需要显示符合SOAP的XML文档。您需要处理该行数组以将其转换为XML文档。

字节顺序标记(BOM)与php标记前的空格具有相同的效果。在这里,您可以找到一个PHP代码段来检测和删除BOM表。确保将编辑器配置为不再插入BOM表

public function get_actividades()
{
    $link = new mysqli($this->dbhost,$this->dbuser,$this->dbpass,$this->dbname);
    if (mysqli_connect_errno()) {
        return 0;
    }
    $query = "SELECT idactividad, codigo, descripcion FROM actividades";
    $datos = array();
    if ($stmt = $link->prepare($query)) {
        $stmt->execute();
        $stmt->store_result();
        $datos = $this->fetcharray($stmt);
        $stmt->free_result();
        $stmt->close();
        return $datos;
    } else { 
        return -1; 
    }           
}