php 值转移,数据转移新总结

自从第一次将那个.net的导医系统改版为php,并将其数据也导入到新系统后,我这次是第三次做类似的数据转移的东西了,第二次是集团网站,也是.net的,不过是sqlsever的数据库,改版为帝国php+mysql,同样的要将数据库导过来,并且网站功能,文章路径等等,都保证和原来不变,就是这个www.rjtnb.com这个网站,第二个难度是最大的,这次的这个是网站改版,但是因为原来文章收录比较多,所以要导入原来的数据,并且保持文章路径不变。这次就是数据量比较大,6w多文章,但是难度相比前两次要简单。

因为这次也是php做的网站,不过是一个类似tp的框架写的,mysql的数据库,我就可以根据现在使用的帝国文章模型的规则,新建一个数据表和模型,这样不影响以后本系统使用,再对应的建栏目,然后分析路径规则,导入即可。

PHP

exit;

set_time_limit(0);

$dbHost = 'localhost';//服务器

$dbUser = 'root';//用户名

$dbPwd = '123456';//密码

$con = mysql_connect($dbHost,$dbUser,$dbPwd);

if(empty($con)){

echo '连接服务器失败';

}

mysql_query("SET character_set_connection=utf8, character_set_results=utf8, character_set_client=binary",$con);

$conn = mysql_select_db('tp',$con);

if(empty($conn)){

echo '选择数据库失败';

}

$classid = array(

'8' => '33',

'16' => '34',

'19' => '35',

'22' => '36',

'27' => '37',

'42' => '38',

'58' => '39',

'73' => '40',

'81' => '41',

'82' => '42',

'85' => '43',

'86' => '44',

'87' => '45',

'235' => '46',

'240' => '47',

'244' => '48',

'250' => '49',

'253' => '50',

);

$classpath = array(

'8' => '/aboutus/article/',

'16' => '/news/article/',

'19' => '/class/article/',

'22' => '/dept/article/',

'27' => '/bfz/article/',

'42' => '/tnbxt/article/',

'58' => '/jkcs/article/',

'73' => '/tslf/article/',

'81' => '/ljtnb/article/',

'82' => '/xjsb/article/',

'85' => '/xtjc/article/',

'86' => '/tnbclub/article/',

'87' => '/jzzn/article/',

'235' => '/tnblx/article/',

'240' => '/2011/article/',

'244' => '/taiwan/article/',

'250' => '/school/article/',

'253' => '/kfbl/article/',

);

$sql = "select `id`,`title`,`content`,`addtime`,`updatetime`,`key`,`intro`,`classid` from `cms_article` where 1 order by id asc";

$query = mysql_query($sql);

while($rs = mysql_fetch_array($query)){

//dump($rs);

$cid = $classid[$rs['classid']];

$data1 = array(

'id' =>$rs['id'],

'classid' =>$cid,

'ttid' =>0,

'onclick' => 1,

'plnum' => 0,

'totaldown' => 0,

'filename' => $rs['id'],

'userid' =>1,

'username' => 'manage',

'firsttitle' => 0,

'isgood' => 0,

'ispic' => 0,

'istop' => 0,

'isqf' => 0,

'ismember' => 0,

'truetime' => $rs['addtime'],

'lastdotime' => $rs['updatetime'],

'havehtml' => 0,

'groupid' => 0,

'userfen' => 0,

'titleurl' => $classpath[$rs['classid']].$rs['id'].'.html',

'stb' => 1,

'fstb' => 1,

'restb' => 1,

'keyboard' => $rs['key'],

'title' => $rs['title'],

'newstime' => $rs['addtime'],

'smalltext' => $rs['intro'],

'diggtop' => 0,

);

insert('phome_ecms_news_old',$data1);

$data2=array(

'id' =>$rs['id'],

'classid' =>$cid,

'dokey' =>1,

'newstempid' => 0,

'closepl' => 0,

'haveaddfen' => 0,

'newstext' => $rs['content'],

);

insert('phome_ecms_news_old_data_1',$data2);

$data3=array(

'id' =>$rs['id'],

'classid' =>$cid,

'checked' =>1,

'newstime' => $rs['addtime'],

'truetime' => $rs['addtime'],

'lastdotime' => $rs['updatetime'],

'havehtml' => 0,

);

insert('phome_ecms_news_old_index',$data3);

}

function dump($s){

echo '

';

var_dump($s);

echo '

';

}

function insert($table,$data=array()){

$keys=array_keys($data);

$z = "`".implode("`,`",$keys)."`";

$v = "'".implode("','",$data)."'";

$sql = "insert into `$table` ($z) values($v)";

mysql_query($sql);

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

exit;

set_time_limit(0);

$dbHost='localhost';//服务器

$dbUser='root';//用户名

$dbPwd='123456';//密码

$con=mysql_connect($dbHost,$dbUser,$dbPwd);

if(empty($con)){

echo'连接服务器失败';

}

mysql_query("SET character_set_connection=utf8, character_set_results=utf8, character_set_client=binary",$con);

$conn=mysql_select_db('tp',$con);

if(empty($conn)){

echo'选择数据库失败';

}

$classid=array(

'8'=>'33',

'16'=>'34',

'19'=>'35',

'22'=>'36',

'27'=>'37',

'42'=>'38',

'58'=>'39',

'73'=>'40',

'81'=>'41',

'82'=>'42',

'85'=>'43',

'86'=>'44',

'87'=>'45',

'235'=>'46',

'240'=>'47',

'244'=>'48',

'250'=>'49',

'253'=>'50',

);

$classpath=array(

'8'=>'/aboutus/article/',

'16'=>'/news/article/',

'19'=>'/class/article/',

'22'=>'/dept/article/',

'27'=>'/bfz/article/',

'42'=>'/tnbxt/article/',

'58'=>'/jkcs/article/',

'73'=>'/tslf/article/',

'81'=>'/ljtnb/article/',

'82'=>'/xjsb/article/',

'85'=>'/xtjc/article/',

'86'=>'/tnbclub/article/',

'87'=>'/jzzn/article/',

'235'=>'/tnblx/article/',

'240'=>'/2011/article/',

'244'=>'/taiwan/article/',

'250'=>'/school/article/',

'253'=>'/kfbl/article/',

);

$sql="select `id`,`title`,`content`,`addtime`,`updatetime`,`key`,`intro`,`classid` from `cms_article` where 1 order by id asc";

$query=mysql_query($sql);

while($rs=mysql_fetch_array($query)){

//dump($rs);

$cid=$classid[$rs['classid']];

$data1=array(

'id'=>$rs['id'],

'classid'=>$cid,

'ttid'=>0,

'onclick'=>1,

'plnum'=>0,

'totaldown'=>0,

'filename'=>$rs['id'],

'userid'=>1,

'username'=>'manage',

'firsttitle'=>0,

'isgood'=>0,

'ispic'=>0,

'istop'=>0,

'isqf'=>0,

'ismember'=>0,

'truetime'=>$rs['addtime'],

'lastdotime'=>$rs['updatetime'],

'havehtml'=>0,

'groupid'=>0,

'userfen'=>0,

'titleurl'=>$classpath[$rs['classid']].$rs['id'].'.html',

'stb'=>1,

'fstb'=>1,

'restb'=>1,

'keyboard'=>$rs['key'],

'title'=>$rs['title'],

'newstime'=>$rs['addtime'],

'smalltext'=>$rs['intro'],

'diggtop'=>0,

);

insert('phome_ecms_news_old',$data1);

$data2=array(

'id'=>$rs['id'],

'classid'=>$cid,

'dokey'=>1,

'newstempid'=>0,

'closepl'=>0,

'haveaddfen'=>0,

'newstext'=>$rs['content'],

);

insert('phome_ecms_news_old_data_1',$data2);

$data3=array(

'id'=>$rs['id'],

'classid'=>$cid,

'checked'=>1,

'newstime'=>$rs['addtime'],

'truetime'=>$rs['addtime'],

'lastdotime'=>$rs['updatetime'],

'havehtml'=>0,

);

insert('phome_ecms_news_old_index',$data3);

}

functiondump($s){

echo'

';

var_dump($s);

echo'

';

}

functioninsert($table,$data=array()){

$keys=array_keys($data);

$z="`".implode("`,`",$keys)."`";

$v="'".implode("','",$data)."'";

$sql="insert into `$table` ($z) values($v)";

mysql_query($sql);

}

上面是代码,这个是帝国7.0的,只是让大家参考一下,其实原理很简单,不过就是要对自己的系统非常熟悉,数据表的字段结构等等,然后就是要分析目标数据库,其实并没有什么太难的。对了,前端时间,我们的一个网站不知道什么原因,从某个日期以后的数据全部没有了,但是页面还在,也就是数据库出了问题,但是帝国生成静态文件,所以还能访问到,我就利用采集,采集自己的文章,赛选出那个日期以后的,并且根据规则,让其路径和原来文章已有的路径保持不变,但是id肯定是变了,帝国的采集是这样的,他会想将信息和每个文章的目标网址保存在一个临时表里,然后我们采集完,留下要导入的信息,然后从数据表利用sql语句替换他的一个用不到但是要导入系统的字段为目标网址(比如ftitle副标题等),然后导入,然后我们可以根据这个字段,用sql或者程序修改

程序本天成,妙手偶得之!我们只是代码的搬运工!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值