如果加入两个或多个表,如何通过PHP将数据库转换为XML文件? [英] How to convert a database to XML file via PHP in case of joining two or more tables?

查看:55
本文介绍了如果加入两个或多个表,如何通过PHP将数据库转换为XML文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用php将我的wordpress数据库转换为xml代码,这个问题有很多代码,但它们都没有用于连接表格。



< b>我尝试了什么:



我已经尝试过下面的PHP代码,但它不起作用,因为当我加入表格时我不能定义根元素,使树结构缺失



I want to convert my wordpress database to xml code using php, there are lot's of codes for this issue but none of them works for joining tables.

What I have tried:

I've tried the php code below but it doesn't work because when I join tables I can't define root element so the tree structure is missing

<?php
      $config['mysql_host']="localhost";
      $config['mysql_user']="user";
      $config['mysql_pass']="pass";
      $config['db_name']="name";
      $config['table_name']="tbl1";

    mysql_connect($config['mysql_host'],$config['mysql_user'],$config['mysql_pass']);
      mysql_select_db($config['db_name']) or die("unable to select database");
      $xml          = "<?xml version=\"1.0\" encoding=\"UTF-8\"  ?>";
      $root_element = $config['table_name']."s"; //users
      $xml         .= "<$root_element>";

      //select all item intable
      $sql = "SELECT * FROM tbl1 join tbl2 on tbl1.id = tbl2.id";

     $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; default_charset=utf-8;');

    //output the XML data
    echo $xml;
    ?>





可能吗?我怎样才能做到这一点?任何建议都非常感谢。谢谢。



Is it possibe at all? How can I do that? Any advice much appreciated. Thanks.

推荐答案

config [' mysql_host'] = localhost;
config['mysql_host']="localhost";


config [< span class =code-string>' mysql_user'] = user;
config['mysql_user']="user";


config [' mysql_pass'] = pass;
config['mysql_pass']="pass";


这篇关于如果加入两个或多个表,如何通过PHP将数据库转换为XML文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆