导到xml跟导到.txt文件是一个原理的。 我这里跟你讲一下原理 php+txt+mysql
假设:我们要导的: 数据库地址=localhost 数据库用户名=root; 数据库密码=123; 数据库名=dbname; 数据表名=tablename; 备份的.txt文件为=db.txt tablename的数据表结构 create table tablename( username varchar(20) not null, password varchar(20) not null, level tinyint(1) not null );
第一步:把msyql的数据导入到.txt文件 <? $link=mysql_connect("localhost","root","123"); $db=mysql_select_db("dbname"); $query="select username,password,level from tablename"; $sql=mysql_query($query); $text=""; $record_exp="<!--phome.record-->";//记录之间的分隔 $field_exp="<!--phome.field-->";//字段之间的分隔 while($r=mysql_fetch_array($sql)) { $text.=$r[username].$field_exp.$r[password].$field_exp.$r[level].$record_exp."rn";//一个字段放.txt文件的一行 } mysql_close($link); $fp=fopen("db.txt","w");//写文件 fputs($fp,$text); fclose($fp); echo"备份完毕"; ?>
上一步我们已将tablename的内容备份至db.txt,现在我们将数据备份回mysql,步骤如下: <? $link=mysql_connect("localhost","root","123"); $db=mysql_select_db("dbname"); $fp=fopen("db.txt","r");//读取文件 $text=""; while($data=fread($fp,256)) {$text.=$data;}//$text就是备份的内容 fclose($fp); $record_exp="<!--phome.record-->";//记录之间的分隔 $field_exp="<!--phome.field-->";//字段之间的分隔 $r=explode($text,$record_exp);//分隔记录 for($i=0;$i<count($r)-1;$i++) { $field_r=explode($r[$i],$field_exp);//分隔字段 for($j=0;$j<count($field_r)-1;$j++) {$field=""; $field.="'".$field_r[$j]."',"; } $field=substr($field,0,strlen($field)-1);//去掉最后一个, $query="insert into tablename values("+$field+");"; $sql=mysql_query($query);//写入数据库 } mysql_close($link); echo"还原数据完毕"; ?>
基本原理差不多这样了。 你看看吧。
|