加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php中完成xml与mysql数据相互转换代码

发布时间:2022-02-18 01:17:20 所属栏目:PHP教程 来源:互联网
导读:本文章提供了一个mysql2xml转换类,可以快速的把xml转换成mysql同时反之也可以把mysql转换成xml,下面看代码. mysql2xml.php类文件,用于备份MySQL数据的,代码如下: ?php class MySQL2XML { protected $conn; protected $result; protected $tables; protecte
  本文章提供了一个mysql2xml转换类,可以快速的把xml转换成mysql同时反之也可以把mysql转换成xml,下面看代码.
 
  mysql2xml.php类文件,用于备份MySQL数据的,代码如下:
 
  <?php
  class MySQL2XML {
          protected $conn;
          protected $result;
          protected $tables;
          protected $saveFolder = 'datas/';
           
          public function __construct($config = NULL) {
                  if($config !== NULL && is_array($config)) {
                          $this->connect($config);
                  }
          }
           
          public function connect($config) {
                  $this->conn = mysql_connect($config['host'], $config['username'], $config['password']);
                  if($this->conn) {
                          mysql_select_db($config['database']);
                          return true;
                  }
                  return false;
          }
           
          public function setSaveFolder($folder) {
                  if(is_dir($folder)) {
                          $this->saveFolder = rtrim(str_replace("/", "/", $folder),'/');
                          return true;
                  }
                  return false;
          }
           
          public function setTables($tables) {
                  if(is_array($tables)) {
                          $this->tables = $tables;
                          return true;
                  }
                  return false;
          }
           
          public function query($query) {
                  if(!isset($query) || trim($query) == '') return false;
                  $this->result = mysql_query($query);
                  if($this->result) return true;
                  return false;
          }
           
          public function toXML() {
                  if(!isset($this->tables)) return false;
                  foreach($this->tables as $table) {
                          $file = $this->saveFolder.$table.'.xml';
                          $fp = @fopen($file, 'w');
                          if(!$fp) exit('Can not write file');
                          fwrite($fp, $this->tableToXML($table));
                          fclose($fp);
                          unset($fp);
                  }
                  return true;
          }
           
          public function tableToXML($table) {
                  header("content-type:text/xml;charset=utf-8");
                  $xml = "<?xml version="1.0" encoding="utf-8" ?>n<datas>n";
                  $fields = $this->getFields($table);
                  $datas = $this->getDatas($table);
                  $cdata = array();
                  foreach($datas as $data) {
                          foreach($data as $key => $value)
                                  $cdata[$key][] = $value;
                  }
                  foreach($fields as $element) {
                          $xml .= "t<fields name="{$element['Field']}" type="{$element['Type']}" null="{$element['Null']}" key="{$element['Key']}" default="{$element['Default']}" extra="{$element['Extra']}">n";
                          foreach($cdata[$element['Field']] as $value) {
                                  $xml .= "tt<data>{$value}</data>n";
                          }
                          $xml .= "t</fields>n";
                  }
                  $xml .= '</datas>';
                  return $xml;
          }
           
          protected function getFields($table) {
                  $query = "SHOW FIELDS FROM {$table}";
                  $this->query($query);
                  return $this->fetchAll();
          }//开源代码Cuoxin.com
   调用方法,代码如下:
 
  <?php
  $xml = new MySQL2XML(array('host'=>'localhost', 'username'=>'root', 'password'=>'', 'database'=>'mysql'));
  $xml->setTables(array('wp_term_relationships','wp_terms'));//设置备份的表
  $xml->setSaveFolder('datas/');//保存备份文件的文件夹
  $xml->toXML();//备份开始
  ?>



php中完成xml与mysql数据相互转换代码

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读