>백엔드 개발 >PHP 튜토리얼 >PHP는 discuz users_php 팁 병합을 구현합니다.

PHP는 discuz users_php 팁 병합을 구현합니다.

WBOY
WBOY원래의
2016-05-16 20:08:501144검색

이 기사의 예에서는 PHP에서 discuz 사용자 스크립트를 병합하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 내용은 다음과 같습니다.

며칠 전 두 개의 discuz를 병합해야 하는 프로젝트를 발견했습니다. 하나는 사용자 레벨이 약 120,000이고 다른 하나는 사용자 레벨이 18,000인 것은 말할 필요도 없이 폐기되었습니다. , 하나는 120,000으로 남겨 둡니다. 새로운 사용자가 등록되면 8개의 테이블에 레코드가 추가되는지 확인하지 못했습니다. 그 때 한동안 그 테이블들을 정리할 수 없을 것 같아서 검색하다가 discuz 도구를 찾았는데, 100,000개 이내의 항목만 가져올 수 있어서 직접 해봐야겠다는 생각이 들었습니다. 레코드의 경우 다른 테이블이 사용자 작업 중에 해당 데이터를 자동으로 완성할 수 있으므로 원래 18,000명의 사용자를 내보내려고 한 다음 PHP 스크립트를 작성하여 직접 작성했습니다. 중앙에 18,000명의 사용자가 들어갑니다. 회원은 내부와 외부입니다. 테스트 해봤는데 괜찮더군요. 불행하게도 사용자 포인트나 어떤 것도 통과되지 않았으며 사용자의 사용자 이름과 비밀번호만 유지되었습니다.

주요 단계:

1. 사용하지 않을 시스템의 uncenter 멤버 데이터베이스를 sql 파일로 내보냅니다.

2. 스크립트를 실행합니다.

고지사항: 이 스크립트는 아이디어만 제공하므로 사용하기 전에 미리 데이터를 백업하시기 바랍니다. 작성자는 데이터 손실과 관련이 없습니다. (코드는 간단합니다. 뿌리지 마세요)

set_time_limit(0); 
$link = mysql_connect('localhost', 'ngjc', 'ohFt6yhHYvt5') 
 or die('Could not connect: ' . mysql_error()); 
echo 'Connected successfully'; 
mysql_select_db('ngjc') or die('Could not select database'); 
require "sql.php";//此处换成导出的sql文件 
$arrayerr=array(); 
$oknum=0; 
$errnum=0; 
mysql_query("SET NAMES utf8"); 
foreach($sqlarr as $sql) 
{ 
 if(!mysql_query($sql)) 
 { 
  $arrayerr[]=$sql;$errnum++; 
 } 
 else 
 { 
  $oknum++; 
 } 
} 
echo "<pre class="brush:php;toolbar:false">OK:$oknum <br>errornum:$errnum <br> error:<br>"; 
print_r($arrayerr); 
mysql_close($link); 

UC 통합 사용법을 살펴보겠습니다

지난 이틀 동안 두 개의 discuz ucenter와 멤버십 시스템을 작업해 왔고, 끊임없는 노력 끝에 드디어 통합이 완료되었습니다.

두 개의 discuz 시스템이 동일한 ucenter를 공유합니다. //구현 방법:

두 개의 discuz 시스템은 동일한 멤버십 시스템을 공유합니다. //해결 방법은 나중에

ucenter를 먼저 통합하세요.

먼저 discuz 시스템을 완전히 설치하고 ucenter에 들어가 애플리케이션을 추가하세요.

설치하려면 클릭하세요. 다음 단계로 계속 진행하세요

클릭이 나타나면 위의 문제를 해결해야 설치를 계속할 수 있습니다
돌아가서 UCenter의 IP 주소를 입력하세요: 문제가 없으면 다음 단계로 이동하세요

ucenter 통합이 완료되면 동시에 로그인할 수 있습니다. 처음으로 활성화하면 됩니다.

두 번째 하위 시스템 config/에서 config_global.php를 엽니다.


$_config['db']['1']['tablepre'] = chuzi_' 아래에 $_config['db']['2'][' 추가; '] = 그것_

두 번째 하위 시스템은 sourceclassdb 파일 아래의 db_driver_mysql.php를 엽니다.

아래 34번째 줄 추가

$this->tablepre = $config['1']['tablepre']; $this->tableprechu = $config['2 '] ['tablepre']; 112행 return $this->tablepre.$tablename은 다음
으로 수정됩니다.

if(preg_match("/^common_member(.*)/i",$tablename)|| preg_match("/^home(.*)/i",$tablename) || in_array($tablename, array('common_credit_rule_log')))
    {
      return $this->tableprechu .$tablename; //tableprechu与上面修改对应就行;
    }else{
    return $this->tablepre.$tablename;
    }
위는 편집자가 요약한 DZ 포럼 회원을 통합하는 두 가지 방법입니다. 저는 개인적으로 두 번째 방법을 선호하지만, 결국 첫 번째 방법에는 여전히 몇 가지 결함이 있습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.