Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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_Mysql - Fatal编程技术网

Php 创建大型xml文件

Php 创建大型xml文件,php,mysql,Php,Mysql,我使用Flex和PHP 我在mysql数据库上进行查询,并使用php函数创建xml 记录集可能包含大约90000行。因此生成xml文件的速度很慢,大约为50秒 我不想进行转储,只想创建一个文件发送到Flashbuilder以创建数据提供程序 我尝试使用几个过程: DOMDocument XmlWriter 单纯形元素 但使用这些方法,创建文件的时间会变慢 您是否有其他加快进程的想法(mysql端或php端) 谢谢我找到了一个很好的解决方案:使用mysql命令创建xml文件。 例如:

我使用Flex和PHP

我在mysql数据库上进行查询,并使用php函数创建xml

记录集可能包含大约90000行。因此生成xml文件的速度很慢,大约为50秒

我不想进行转储,只想创建一个文件发送到Flashbuilder以创建数据提供程序

我尝试使用几个过程:

  • DOMDocument
  • XmlWriter
  • 单纯形元素
但使用这些方法,创建文件的时间会变慢

您是否有其他加快进程的想法(mysql端或php端)


谢谢

我找到了一个很好的解决方案:使用mysql命令创建xml文件。 例如:

    $link = mysql_connect(DB_HOST,DB_USER, DB_PWD);
mysql_select_db(DB_DATABASE, $link);

$query = "SELECT GROUP_CONCAT(
    CONCAT('\n<rec>\n', 
                CONCAT('\n<id>',acIndex,'</id>\n'),
                CONCAT('<prInitiales>',prInitiales,'</prInitiales>\n'),
                CONCAT('<acSolde>',acSolde,'</acSolde>\n'),

    '</rec>') SEPARATOR ' ' ) AS xml
    FROM Cutomer";

$recordset = mysql_query($query, $link);

$xml = mysql_fetch_array($recordset);
echo '<list>'.$xml['xml'].'</list>';
$link=mysql\u connect(DB\u主机、DB\u用户、DB\u PWD);
mysql\u select\u db(db\u DATABASE,$link);
$query=“选择组\u CONCAT(
CONCAT(“\n\n”,
CONCAT('\n',acidex,'\n'),
CONCAT(“”,prInitiales,“\n'),
CONCAT('',acSolde,'\n'),
“”分隔符“”)作为xml
来自客户”;
$recordset=mysql\u查询($query,$link);
$xml=mysql\u fetch\u数组($recordset);
回显'.$xml['xml'].';

谢谢

从本质上讲,这很慢。您应该按需要逐件加载它。我也要说,您必须考虑以不涉及XML格式向客户机倾倒90000行的方式构建数据提供程序。不仅服务器创建速度慢,客户机使用它也会有困难。有90000行,你不会更快。也许如果您的数据库没有索引,或者它们没有正确设置,您添加它们时,您会看到一些速度提高,但正如DanRedux所说,您应该一块一块地加载它们,或者一页一页地加载它们,或者根据您需要如何处理/显示它们。您能告诉我们有关XML结构的更多信息吗?MySQL的命令行客户端可以进行XML输出,如果您的XML结构非常扁平,这可能会有所帮助。