php mysql与xml数据相互转换程序
很多时间我们要把数据保存到其它地方,如保存到xml或又想把xml数据保存到mysql数据库,下面我们就提供了一款php mysql与xml数据相互转换程序哦。
先来看看调用方法
<?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 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.= "\t\t<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; } }
本文地址:http://www.phprm.com/code/3df9ddc5ddb66cb5fe673e23cdf249fe.html
转载随意,但请附上文章地址:-)