源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

php中实现xml与mysql数据相互转换的方法

  • 时间:2020-02-18 22:41 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:php中实现xml与mysql数据相互转换的方法
本文实例讲述了php中实现xml与mysql数据相互转换的方法。分享给大家供大家参考。具体分析如下: 这里提供了一个mysql2xml转换类,可以快速的把xml转换成mysql同时反之也可以把mysql转换成xml,下面看代码. mysql2xml.php类文件,用于备份MySQL数据的,代码如下:
[u]复制代码[/u] 代码如下:
<?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();         }                  protected function getDatas($table) {                 $query = "SELECT * FROM {$table}";                 $this->query($query);                 return $this->fetchAll();         }                  protected function fetch() {                 if(is_resource($this->result)) {                         return mysql_fetch_assoc($this->result);                 }                 return false;         }                  protected function fetchAll() {                 if(is_resource($this->result)) {                         $return = array();                         $row = NULL;                         while($row = mysql_fetch_assoc($this->result)) {                                 $return[] = $row;                         }                         return $return;                 }                 return false;         } } ?>
调用方法,代码如下:
[u]复制代码[/u] 代码如下:
<?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程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部