>>> 帝国网站管理系统5.1开源测试版下载
帝国CMS进入开源时代
 帝国论坛技术交流区网络编程有谁实现过这样的功能!! 【本版专题贴子】  
主题:有谁实现过这样的功能!! [加入收藏夹]   

jukey
用户头衔:版主

精华贴   :1
发贴数   :249
经验值   :1099
注册时间:2003-10-07
信息 搜索 好友 发送悄悄话 开源第一波:帝国备份王2008开源版发布】   [第 1 楼]
有谁实现过这样的功能!!
刚来这个论坛,感觉还不错,还请大家多多指教!
最近在做一个文档管理系统!要实现数据的备份功能!我想用php+xml来实现,后台用mysql,[我的本意是:xml格式方便打印或浏览数据],但我对xml不是很熟,所以想请大家指点一下,我怎样实现库数据导出成xml,并且又能将xml格式数据恢复到数据库!请高手帮忙,不胜感激!!




2003-10-07 11:33:57 已设置保密 顶部 回复 引用 报告 编辑 删除

wm_chief
用户头衔:管理员

精华贴   :21
发贴数   :47888
经验值   :109431
注册时间:2002-10-30
信息 搜索 好友 发送悄悄话 《帝国网站管理系统》零基础实例入门教程】   [第 2 楼]

导到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"还原数据完毕";
?>

基本原理差不多这样了。
你看看吧。




[零基础入门教程] [模板制作教程] [采集使用教程]
2003-10-07 15:47:04 已设置保密 顶部 回复 引用 报告 编辑 删除

jukey
用户头衔:版主

精华贴   :1
发贴数   :249
经验值   :1099
注册时间:2003-10-07
信息 搜索 好友 发送悄悄话 开源第一波:帝国备份王2008开源版发布】   [第 3 楼]

谢谢版主指点!!!这个方法不错,但要还原数据真的有点难,我想导出时将表名做为一级标签,字段名做为二级标签,还原时我想读取一记标记用作表名,二级标记用作字段名,就是感觉还原数据时很棘手的,要检索整个xml文件(打算补xml:)),不过还得谢谢版主!!!

[该贴被修改 1 次,最后修改时间 0000-00-00 00:00:00 ]



2003-10-07 22:14:26 已设置保密 顶部 回复 引用 报告 编辑 删除

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1