この記事では、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 .= "tn";
}
$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();//备份开始
?> |
http://www.bkjia.com/PHPjc/632929.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632929.html技術記事この記事では、xml と mysql をすばやく変換できる mysql2xml 変換クラスを提供します。以下のコードを参照してください。 mysql2xml.php クラス ファイル: バックアップに使用されます...