이 글은 주로 DISCUZ 사용자들을 PHP로 통합하는 방법을 소개하고 있으니, 관심 있는 친구들이 참고하시면 좋을 것 같습니다.
몇일 전 두 개의 discuz를 병합해야 하는 프로젝트를 접했습니다. 한 사용자 레벨은 약 120,000이고 다른 하나는 18,000이었습니다. 말할 것도 없이 10,080 사용자 레벨은 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를 먼저 통합하세요.
disuz 시스템을 설치하세요. ucenter를 입력하세요.
설치하려면 클릭하세요. 맨 아래까지 다음 단계로 진행하세요. 클릭해서 나타나면 위의 문제를 해결해야 설치를 계속할 수 있습니다
돌아가서 UCenter의 IP 주소를 입력하세요. 문제가 없으면 다음 단계로 이동하세요
ucenter 통합이 완료됩니다. 동시에 로그인하고 동시에 로그아웃해야 합니다.
두 번째 하위 시스템의 config/ 아래에서 $_config['를 추가하세요. db']['2']['tablepre'] = it_
under$_config['db']['1']['tablepre'] = chuzi_'
; 두 하위 시스템이 db_driver_mysql을 엽니다.라인 34$this->tablepre = $config['1']['tablepre'];아래에 추가하세요 $this->tableprechu = $config['2' ]['tablepre'];
Line 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; }
Summary: 위 내용은 이 기사의 전체 내용입니다. 모두의 공부.
관련 추천:
thinkPHP의 다중 테이블 쿼리 및 페이징 기능 구현 방법
PHP의 전월, 이번 달, 최근 15일, 최근 30일을 가져오는 방법
PHP는 preg_split을 사용하고 폭발은 콘텐츠를 저장하기 위해 텍스트 영역을 나누는 방법을 구현합니다
위 내용은 DISCUZ 사용자를 통합하는 PHP 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!