php专区

 首页 > php专区 > PHP应用 > CMS建站 > 关于DISCUZ升级程序 - Discuz

关于DISCUZ升级程序 - Discuz

分享到:
【字体:
导读:
          DISCUZ版本过低腰升级的话,官方好像也没有升级程序,让DISCUZ提供技术支持,费用太贵,自己处理,以下是核心代码.注意:cdb_templates 这个表不能导,否则一清空缓存就乱了,切记,花了一天时间才...

关于DISCUZ升级程序

DISCUZ版本过低腰升级的话,官方好像也没有升级程序,让DISCUZ提供技术支持,费用太贵,自己处理,以下是核心代码.

注意:cdb_templates 这个表不能导,否则一清空缓存就乱了,切记,花了一天时间才找到.

主程序:

  1. set_time_limit(9999999); 
  2.  
  3. include "inc/init.php 
  4.  
  5. cls::getDatabase()->start(); 

类程序:

  1. class common_database{ 
  2.   //所有有数据的表 
  3.   private $_needtable = null; 
  4.   //表对应关系 - 优先这样导入 
  5.   private $_distablearr = array
  6.    'cdb_members'=>array('yzlt_common_member','yzlt_ucenter_members'), 
  7.    'cdb_settings'=>'yzlt_ucenter_settings'
  8.     
  9.    ''=>'' 
  10.   ); 
  11.   //明确禁止导入的表 
  12.   private $_disable_table = array('cdb_templates','cdb_buddys','cdb_caches','cdb_favorites','cdb_memberspaces','cdb_mythreads','cdb_myposts','cdb_projects','cdb_stats'); 
  13.  
  14.   //构造函数 
  15.   public function __construct() 
  16.   { 
  17.   } 
  18.    
  19.    
  20.   public function start(){ 
  21.    // 
  22.    $rst = $this->getNeedTable(); 
  23.    foreach($rst as $tb){ 
  24.     $this->importTable($tb);//逐个导入表 
  25.     //break; 
  26.    } 
  27.    //收尾工作 
  28.    $this->endDoing(); 
  29.   } 
  30.    
  31.   private function endDoing(){ 
  32.    //给会员再加密 
  33.    $rs = cls::getDB()->getRowsNew("select uid,password from yzlt_ucenter_members");$num = count($rs); 
  34.    for($i=0;$i<$num;$i++){ 
  35.     cls::getDB()->Query("update yzlt_ucenter_members set password='".md5($rs[$i]["password"])."' where uid='".$rs[$i]["uid"]."'"); 
  36.    } 
  37.    //其他操作 
  38.   } 
  39.    
  40.   private function getShoulTable($tb){ 
  41.    $DB1 = cls::getDB(1); 
  42.    $sqla = "describe ".$tb.""
  43.    $rsa = $DB1->getRowsNew($sqla);//原来表字段 
  44.    $numa = count($rsa); 
  45.    $DB = cls::getDB(); 
  46.    $sql = "show tables"
  47.    $rs = $DB->getRowsNew($sql);$num = count($rs); 
  48.    $samenumtj = 0;$mytb=''
  49.    for($i=0;$i<$num;$i++){ 
  50.     $rscc = $DB->getRowsNew("describe ".$rs[$i][0]);$numcc = count($rscc); 
  51.     $samezd = 0; 
  52.     for($k1=0;$k1<$numa;$k1++){ 
  53.      for($k=0;$k<$numcc;$k++){ 
  54.       if($rsa[$k1][0]==$rscc[$k][0]){ 
  55.        $samezd++; 
  56.       } 
  57.      } 
  58.     } 
  59.     //echo " 
  60. 源表:".$tb.",目标表:".$rs[$i][0].",相同字段数:".$samezd.""; 
  61.     if((int)$samezd>(int)$samenumtj){ 
  62.      //echo "----------------".$samenumtj; 
  63.      $samenumtj = $samezd;$mytb = $rs[$i][0]; 
  64.     } 
  65.     //$samefield = array_intersect($rsa,$rscc);$samenum = count($samefield); 
  66.     //if($samenum>=$samenumtj){ 
  67.     // $samenumtj = $samenum;$mytb = $rs[$i][0]; 
  68.     // echo "表名:".$mytb.",相同字段数:".$samenumtj." 
  69. "; 
  70.     /
分享到:
Discuz 更改目录不能显示和修改头像的解...
Discuz 更改目录不能显示和修改头像的解决办法 安装之后,发现安装到了站点根目录下的upload目录了,于是直接把upload目录下的文件直接移到根目录下了. 移好后,其他未发现异常,只是用户头像不能显示了,在网上搜索了好久解决方法,结果是这样解决的: /uc_client/data/cache/apps.php   ...
在disucz中使用PHPExcel,导入电子表格 -...
在disucz中使用PHPExcel,导入电子表格 在做discuz二次开发的时候,有个需求是导入产品卡密积分的Excel表格,discuz采用的是php语言开发,关于Excel方面的操作,当然要借助PHPExcel项目了. PHPExcel - OpenXML - Read, Write and Create Excel documents in PHP - Spreadsheet engine 1、下载PH...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……