加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 02:17:54 所属栏目:PHP教程 来源:网络整理
导读:《:php中实现xml与mysql数据相互转换的方法》要点: 本文介绍了:php中实现xml与mysql数据相互转换的方法,希望对您有用。如果有疑问,可以联系我们。 PHP编程 本篇章节讲解php中实现xml与mysql数据相互转换的办法.供大家参考研究.具体分析如下: P

《:php中实现xml与mysql数据相互转换的方法》要点:
本文介绍了:php中实现xml与mysql数据相互转换的方法,希望对您有用。如果有疑问,可以联系我们。

PHP编程本篇章节讲解php中实现xml与mysql数据相互转换的办法.分享给大家供大家参考.具体分析如下:

PHP编程这里提供了一个mysql2xml转换类,可以快速的把xml转换成mysql同时反之也可以把mysql转换成xml,下面看代码.

PHP编程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();
??????? }
????????
??????? 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;
??????? }
}
?>

调用办法,代码如下:
代码如下:
<?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编程希望本文所述对大家的php程序设计有所帮助.

《:php中实现xml与mysql数据相互转换的方法》是否对您有启发,欢迎查看更多与《:php中实现xml与mysql数据相互转换的方法》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。

(编辑:李大同)

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

    推荐文章
      热点阅读