php代码
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 = \n\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\n; foreach($cdata[$element['field']] as $value) { $xml .= \t\t{$value}\n; } $xml .= \t\n; } $xml .= ''; 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代码
'localhost', 'username'=>'root', 'password'=>'', 'database'=>'mysql')); $xml->settables(array('wp_term_relationships','wp_terms'));//设置备份的表 $xml->setsavefolder('datas/');//保存备份文件的文件夹 $xml->toxml();//备份开始 ?>
