本文实例讲述了php合并discuz用户脚本的方法。分享给大家供大家参考。具体如下:
前几天遇到一个需要将两个discuz合并的项目,一个用户级别在12万左右,一个是1万8.不用说肯定是扔了1万8的,留下12万的。开始觉得不好处理,数据表都是关联,新注册一个用户,有8个表增加记录了,还没看有没有其他表有修改记录的可能性。当时觉得一时半会儿也理不清那些表,就搜索了一下,搜到了discuz tool.但是只能导10万以内的,于是就只能自己尝试了,后来考虑,我直接在关键表插入一条记录如何,其他表在用户操作的过程中没准就自动补齐的相关数据了,于是就试着导出原来的1万8用户,然后写了个php脚本直接将这1万8用户写入的uncenter的memeber表里。测试了一下还ok。遗憾的是用户积分啥的都没过去,只是保留了用户的用户名和密码。
关键步骤:
1.导出打算不要的那个系统的uncenter member数据库成sql文件。
2.运行脚本。
声明:本脚本只提供思路,请使用前提前备份好数据,如数据丢失与作者无关。(代码简单,勿喷)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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>ok:$oknum <br>errornum:$errnum <br> error:<br>" ;
print_r( $arrayerr );
mysql_close( $link );
|
我们再来看下使用uc整合的方法
这两天一直在2个discuz的ucenter和会员系统;经过我的不懈努力;终于整合完成;整合过后实现功能如下;
两个discuz系统共用同一个ucenter; //实现方法:
两个discuz系统共用同一个会员系统;//解决方法在后面;
先整合ucenter;
先完整安装一个discuz系统;进入ucenter;添加应用:
点击安装:一直下一步到下面
如果点击出现您必须解决以上问题,安装才可以继续
请返回输入 ucenter 的ip地址:如果不出意外进入下一步
ucenter整合完毕;可以实现同时登陆;同时退出;只是第一次需要激活;
打开第二个分系统config/下的config_global.php;
在$_config['db']['1']['tablepre'] = chuzi_';下添加$_config['db']['2']['tablepre'] = it_
第二个分系统打开source\class\db文件下的db_driver_mysql.php;
在第 34行 $this->tablepre = $config['1']['tablepre'];下面添加 $this->tableprechu = $config['2']['tablepre'];
第112行 return $this->tablepre.$tablename;修改成下面
1
2
3
4
5
6
|
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 ;
}
|
以上就是小编给大家总结的2种整合dz论坛会员的方式,个人比较喜欢第二种,毕竟第一种还是有些缺陷的。