【代码】有关于数据转移方面的新总结

自从第一次将那个.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 '连接服务器失败';
} (PS:T不错的Q扣峮,有兴趣可以加入一起讨论:php扣峮:304224365,验证:csl)
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 '<pre>';
    var_dump($s);
    echo '</pre>';
}
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);
}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
(本篇文章中,本人将会详细讨论区块链的安全性问题。首先,简要介绍区块链技术及其应用,接着分别从技术安全、网络安全、隐私安全三个方面,探讨区块链技术面临的安全挑战以及相应的解决方案。最后,总结全文并提出未来研究方向) 一、引言 区块链是一种去中心化、分布式的账本技术,其最初的应用是比特币,用于记录交易信息。随着区块链技术的不断发展,越来越多的应用场景被发掘出来,如数字资产交易、供应链金融、电子票据等。然而,与其它技术一样,区块链也存在安全性问题,这些问题的解决将直接影响到区块链技术的发展和应用。本文将从技术安全、网络安全、隐私安全三个方面,探讨区块链技术面临的安全挑战以及相应的解决方案。 二、技术安全 技术安全是指区块链技术本身的安全性。区块链技术的安全性主要包括以下方面: 1、共识算法 共识算法是区块链技术的核心,其作用是确保每个节点都对区块链中的信息达成一致。在共识过程中,可能会出现拜占庭将军问题,导致恶意节点的攻击。为此,区块链技术采用了多种共识算法,如工作量证明、权益证明、拜占庭容错等,以保证共识的正确性和安全性。 2、智能合约 智能合约是区块链技术的又一重要组成部分,其作用是通过编写程序代码,实现自动化的合约执行和资产转移。然而,智能合约也存在被攻击的风险,如DOS攻击、重入攻击等。为此,区块链技术需要加强智能合约的安全性设计,采用代码审计、漏洞修复等方式,提高智能合约的安全性。 3、密钥管理 密钥管理是区块链技术中的重要组成部分,其作用是确保账户的安全性。然而,密钥管理也存在一些问题,如密码弱、密码泄露等。为此,区块链技术需要加强密钥管理的安全性设计,采用多重签名、硬件钱包等方式,提高密钥管理的安全性。 三、网络安全 网络安全是指区块链技术在网络传输过程中的安全性。网络安全主要包括以下方面: 1、节点攻击 节点攻击是指攻击者通过攻击节点,篡改区块链中的信息。为此,区块链技术需要加强节点的安全性设计,采用节点隔离、节点备份等方式,提高节点的安全性。 2、DDoS攻击 DDoS攻击是指攻击者通过攻击网络,使得网络无法正常运行。为此,区块链技术需要加强DDoS攻击的防范,采用网络隔离、网络流量控制等方式,提高网络的安全性。 3、防火墙 防火墙是指在网络传输过程中,通过过滤和监控网络流量,保证网络的安全性。为此,区块链技术需要加强防火墙的安全性设计,采用规则管理、流量控制等方式,提高防火墙的安全性。 四、隐私安全 隐私安全是指区块链技术中的隐私信息的安全性。隐私安全主要包括以下方面: 1、匿名性 匿名性是区块链技术的一大特点,其作用是保护用户的隐私信息。然而,匿名性也存在一些问题,如双重支付、洗钱等。为此,区块链技术需要加强匿名性的安全性设计,采用交易追踪、节点监控等方式,提高匿名性的安全性。 2、数据隐私 数据隐私是指区块链技术中的数据信息的安全性。为此,区块链技术需要加强数据隐私的安全性设计,采用加密算法、数据脱敏等方式,提高数据隐私的安全性。 3、合规性 合规性是指区块链技术的合法性和合规性。为此,区块链技术需要加强合规性的安全性设计,遵守相关法律法规,提高合规性的安全性。 五、总结与展望 总之,区块链技术的安全性问题是影响其发展和应用的重要因素。本文从技术安全、网络安全、隐私安全三个方面,探讨了区块链技术面临的安全挑战以及相应的解决方案。未来,随着区块链技术的不断发展和应用,其安全性问题也将不断涌现。因此,我们需要加强对区块链技术的安全性研究,提出更加全面和有效的解决方案,以保证区块链技术的可持续发展和应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值