尝试将数据从MYSQL获取到XML时出错


Error trying to get data from MYSQL to XML

我在将一些MYSQL数据获取到XML输出时遇到问题。我已经做了一些研究,我并没有试图在回声之前调用标头。下面的代码来自我的example_xml.php文件。下面也是确切的错误。非常感谢您的帮助。

  Warning: Cannot modify header information - headers already sent by (output started at     /home/content/59/11513559/html/bg/example_xml.php:2) in /home/content/59/11513559/html/bg/example_xml.php on line 65

第65行是

          header ("Content-Type:text/xml"); 

    <?php
 //database configuration
 $config['mysql_host'] = "localhost";
 $config['mysql_user'] = "placeholder";
 $config['mysql_pass'] = "placeholder";
 $config['db_name']    = "placeholder";
 $config['table_name'] = "placeholder";
 //connect to host
 mysql_connect($config['mysql_host'],$config['mysql_user'],$config['mysql_pass']);
 //select database
 @mysql_select_db($config['db_name']) or die( "Unable to select database");


 // start creating xml document
 $xml          = "<?xml version='"1.0'" encoding='"UTF-8'"?>";
 $root_element = $config['table_name']."s"; //fruits
 $xml         .= "<$root_element>";

 //select all items in table
 $sql = "SELECT * FROM ".$config['table_name'];
 $result = mysql_query($sql);
 if (!$result) {
die('Invalid query: ' . mysql_error());
 }
 if(mysql_num_rows($result)>0)
 {
 while($result_array = mysql_fetch_assoc($result))
 {
  $xml .= "<".$config['table_name'].">";
  //loop through each key,value pair in row
  foreach($result_array as $key => $value)
  {
     //$key holds the table column name
     $xml .= "<$key>";
     //embed the SQL data in a CDATA element to avoid XML entity issues
     $xml .= "<![CDATA[$value]]>"; 
     //and close the element
     $xml .= "</$key>";
  }
  $xml.="</".$config['table_name'].">";
  }
  }

  //close the root element
 $xml .= "</$root_element>";

 //send the xml header to the browser
 header ("Content-Type:text/xml"); 
 //output the XML data
 echo $xml;
 ?>

即使是一个空格也可能导致此错误。删除不必要的空白,但您可以将这个(更正的)标题放在脚本的顶部

header("Content-Type: text/xml");

因为这个头信息不在任何条件语句中,所以它总是被发送的。

或者,使用输出缓冲;添加以下内容作为第一行:

ob_start();

最后,

ob_flush();

请参阅有关输出缓冲的文档。