ホームページ  >  記事  >  バックエンド開発  >  php_PHPチュートリアルでのxmlとmysqlデータの相互変換コードの実装

php_PHPチュートリアルでのxmlとmysqlデータの相互変換コードの実装

WBOY
WBOYオリジナル
2016-07-13 10:46:47957ブラウズ

この記事では、xml を mysql に、またはその逆にすばやく変換できる mysql2xml 変換クラスを提供します。以下のコードを参照してください。

mysql2xml.php クラス ファイル: MySQL データのバックアップに使用されます。 !

代码如下 复制幣

クラス MySQL2XML {
        保護された $conn;
        保護された $result;
        保護された $tables;
        protected $saveFolder = 'datas/';
       
        パブリック関数 __construct($config = NULL) {
                if($config !== NULL && is_array($config)) {
                        $this->connect($config);
                }
        }
       
        パブリック関数 connect($config) {
                $this->conn = mysql_connect($config['host'], $config['username'], $config['password']);
                if($this->conn) {
                        mysql_select_db($config['database']);
                        true を返します;
                }
                false を返します;
        }
       
        パブリック関数 setSaveFolder($folder) {
                if(is_dir($folder)) {
                        $this->saveFolder = rtrim(str_replace("", "/", $folder),'/');
                        true を返します;
                }
                false を返します;
        }
       
        パブリック関数 setTables($tables) {
                if(is_array($tables)) {
                        $this->tables = $tables;
                        true を返します;
                }
                false を返します;
        }
       
        パブリック関数クエリ($query) {
                if(!isset($query) || トリム($query) == '') return false;
                $this->result = mysql_query($query);
                if($this->result) true を返します;
                false を返します;
        }
       
        パブリック関数 toXML() {
                if(!isset($this->tables)) return false;
                foreach($this->tables as $table) {
                        $file = $this->saveFolder.$table.'.xml';
                        $fp = @fopen($file, 'w');
                        if(!$fp) exit('ファイルに書き込めません');
                        fwrite($fp, $this->tableToXML($table));
                        fclose($fp);
                        設定を解除($fp);
                }
                true を返します;
        }
       
        パブリック関数 tableToXML($table) {
                header("content-type:text/xml;charset=utf-8");
                $xml = "nn";
                $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 .= "tn";
                        foreach($cdata[$element['Field']] as $value) {
                                $xml .= "tt{$value}n";
                        }
                        $xml .= "t
n";
                }
                $xml .= '
';
                $xml を返します;
        }
       
        保護された関数 getFields($table) {
                $query = "{$table} のフィールドを表示";
                $this->クエリ($クエリ);
                return $this->fetchAll();
        }
       
        保護された関数 getDatas($table) {
                $query = "SELECT * FROM {$table}";
                $this->クエリ($クエリ);
                return $this->fetchAll();
        }
       
        保護された関数 fetch() {
                if(is_resource($this->result)) {
                        return mysql_fetch_assoc($this->result);
                }
                false を返します;
        }
       
        保護された関数 fetchAll() {
                if(is_resource($this->result)) {
                        $return = array();
                        $row = NULL;
                        while($row = mysql_fetch_assoc($this->result)) {
                                $return[] = $row;
                        }
                        $return;
を返す                 }
                false を返します;
        }
}
?>


调使用方法:

代码如下 复制幣
$xml = 新しい MySQL2XML(array('host'=>'localhost', 'username'=>'root', 'password'=>'', 'database'=>'mysql'));
$xml->setTables(array('wp_term_relationships','wp_terms'));//設定表
$xml->setSaveFolder('datas/');//保存ファイルのファイル夹
$xml->toXML();//备份开始
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632929.html技術記事この記事では、xml と mysql をすばやく変換できる mysql2xml 変換クラスを提供します。以下のコードを参照してください。 mysql2xml.php クラス ファイル: バックアップに使用されます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。