php、xmlmysqlでxmlとmysqlデータを相互に変換する方法
この記事の例では、PHP で XML と MySQL データを変換する方法を説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:
ここでは、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) == '') false を返します。
$this->result = mysql_query($query);
if($this->result) は true を返します。
false を返します。
}
パブリック関数 toXML() {
if(!isset($this->tables)) は 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("コンテンツタイプ:text/xml;charset=utf-8");
$xml = "nn";
$fields = $this->getFields($table);
$datas = $this->getDatas($table);
$cdata = 配列();
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 .= "tn";
}
$xml .= '';
$xml を返します。
}
保護された関数 getFields($table) {
$query = "{$table} からフィールドを表示";
$this->クエリ($クエリ);
$this->fetchAll(); を返す
}
保護された関数 getDatas($table) {
$query = "SELECT * FROM {$table}";
$this->クエリ($クエリ);
$this->fetchAll(); を返す
}
保護された関数 fetch() {
if(is_resource($this->result)) {
return mysql_fetch_assoc($this->result);
}
false を返します。
}
保護された関数 fetchAll() {
if(is_resource($this->result)) {
$return = 配列();
$行 = NULL;
while($row = mysql_fetch_assoc($this->result)) {
$return[] = $row;
}
$return を返す;
}
false を返します。
}
}
?>
使用方法、代償如下:
复制代码代码如下:
$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 プログラムの設計が役立つことを望みます。
http://www.bkjia.com/PHPjc/932476.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/932476.html技術記事 php で xml と mysql データを相互に変換する方法、xmlmysql の本文の例では、php で xml と mysql データを相互に変換する方法を説明しています。