php XMLwriter文件大小限制

时间:2013-12-23 01:08:16

标签: php xml xmlwriter

我正在使用PHP从sql查询创建一个xml文件。 如果查询返回超过大约500条记录,则xml文件未完全写入,我从PHP服务器收到错误消息:

“服务器暂时无法为您提供服务 由于维护停机或容量的要求 问题。“

我不确定我是否正确这样做。我可以在VB中做同样的事情没有问题。完成的sql查询应该有大约5000条记录,大小约为4mb。

以下是我正在使用的代码:

$writer = new XMLWriter();
$writer->openUri('mydoc.xml');
$writer->startDocument('1.0', 'UTF-8');
$writer->setIndent(4);
$writer->startElement('FE_Time');  //create root element

while ($row = oci_fetch_assoc($db->result)){ 

  //I load data from the oracle query into variables and use them below:

     $writer->startElement('Item'); //create item element
         $writer->writeElement("Plate_No", $Plate_No);
         $writer->writeElement("Job_No", $Job_No);
         $writer->writeElement("Hold_Time", $Hold_Time);
         $writer->writeElement("OE_Time", $OE_Time);
         $writer->writeElement("Ship_Date", $Ship_Date);
     $writer->endElement(); //end the Item Element
}

$writer->endElement(); //end the FE_Time root element
$writer->endDocument(); //close the document
$writer->flush();  //clear the memory

unset($db); //close db connection

我非常感谢您提供的任何帮助,我认为xmlWriter可以处理的记录数量必须有限制吗?

1 个答案:

答案 0 :(得分:0)

您提供的错误消息:

  

“由于维护停机或容量问题,服务器暂时无法为您的请求提供服务。”

不是PHP的特定错误消息,而是来自您的网络服务器。启用PHP错误日志记录,找到错误日志并找到描述更详细信息的确切错误。

到目前为止进行故障排除。

通用错误消息暗示您的脚本资源已耗尽。这可能是你的脚本崩溃,内存不足或时间不足(我只能猜测而不是更好地说因为缺少PHP错误,所以这只是为了一般方向)。

你可以做的一件事就是移动冲洗

$writer->flush();  //clear the memory

进入while循环,以便将文件写入每个$row的磁盘:

while ($row = oci_fetch_assoc($db->result)) {

    ...

    $writer->endElement(); //end the Item Element
    $writer->flush();
    #################
}

另外

$writer->endDocument();

也将刷新XMLWriter,因此您不需要在该方法调用之前调用它一行。

希望这可以帮助你解决问题。