zhujp Publish time 2023-10-29 23:29:20

Discuz论坛会员导入到ucenter

Discuz论坛会员导入到ucenter,针对备份论坛但是没有备份ucenter导致会员丢失的解决方法

声明:此方法已经在本站验证可行。我们的DZ版本是:      Discuz! X3.4 R20230520 UTF8 , UCenten为:UCenter 1.7.0 Release 20231001

问题描述:经过几次程序升级后,ucenter数据丢失,以前的备份太早,导致uc里会员丢失好几千人,论坛后台会员信息存在,空间商无备份。


办法:

因为uc明显比论坛少了一批用户,所以必须把这些用户添加进来。

1、添加的时候需要保持论坛后台用户和uc后台用户的UID是一致的
(不要以为默认的就是一致的,由于删除过用户什么的,往往导致两者是不一致的)
前后不一致的话,会导致数据库SQL执行时一直出错,最后我只能再添加了语句 INSERT IGNORE,只要前后不一致,就忽略。

2、密码(password)这一项是没有办法添加的,第一我不知道用户的密码是什么,第二UC会将密码MD5加密。所以密码索性就设置为空,即不导入密码。

所以需要导入的只需UID、用户名(username)、邮箱(email)三项就可以了(其他信息可以让会员将来重置)


代码如下:

INSERT IGNORE INTO `你的数据库名`.`uc_members` (   
`uid`,   
`username`,   
`email`   
)   
SELECT `uid`, `username`, `email`   
FROM `你的数据库名`.`pre_common_member`   
WHERE uid > 3(把3改为需要添加的UID起始编号地址,然后删除此括号) AND uid < 81524 (同理,这是终止UID号)   
AND uid NOT IN (SELECT uid FROM uc_members);
意思就是:把论坛会员表`pre_common_member倒入uc的会员表 uc_members 里。

注意:你的数据库名、论坛会员表pre_common_member 和UC会员表的表格uc_members,必须换回自己的。

进入网站的PHPmyadmin后台,进入Mysql管理,使用“SQL查询”,贴上以上代码(记得要替换自己的信息),执行。
这样,就完成了论坛数据表到ucenter数据的导入了。PS:如果有人尝试的话,请做好数据表备份!

后续工作:选取这些会员,发送站点通知。通知选用Email发送,内容当然是提醒会员重置密码。


Pages: [1]
View full version: Discuz论坛会员导入到ucenter