将ucenter会员批量激活discuz

时间:2021-06-27 14:52:06

公司要求批量激活uc数据到论坛。在网上搜索大半,直接复制进去不好使。发现是安装uc时分开安装的原因。

uc的安装分两种,一种是直接在discuz集成的,就是不单独安装uc.另一种是单独安装,将网站,UC,discuz,当成三个独立的个体。UC当做媒介。这种方法的好处是,思路明确,对于以后维护起来方便。更可实现不同服务器拆分。承载更大的用户量。下面贴一个批量激活的代码。兼容两种。只是在原有基础上稍作修改的。

$dbserver ='localhost'; //此处改成数据库服务器地址
$dbuser ='root';//此处写数据库用户名
$dbpwd ='';//数据库密码
$dbname ='disucz';//数据库名称
$charset ='gbk';//此处写字符集gbk或者utf8
$uc =     'ucenter';//uc数据库名
$uc_pre ='dz_';//UC表前缀
$dz     = 'discuz';//数据库名
$dx_pre ='dz_';//Discuz! 表前缀
//此行开始向下不要改动
set_time_limit(0); //0为无限制
$connect=mysql_connect($dbserver,$dbuser,$dbpwd) or die("无法连接数据库");
@mysql_select_db($dbname,$connect);
mysql_query("set names $charset");
$query = mysql_query("SELECT * FROM {$uc}.`{$uc_pre}members`  WHERE  `uid` not in(select `uid` from {$dz}.`{$dx_pre}common_member`) ",$connect);
while($user = mysql_fetch_array($query)) {
$password=$user[password];   
mysql_query(" replace INTO  {$dz}.`{$dx_pre}common_member` (uid,username,password,adminid,groupid,regdate,email) VALUES ('$user[uid]', '$user[username]', '$password','0','10','$user[regdate]','$user[email]') ");
mysql_query(" replace INTO  {$dz}.`{$dx_pre}common_member_field_forum` (uid) VALUES ('$user[uid]')");
mysql_query(" replace INTO  {$dz}.`{$dx_pre}common_member_field_home` (uid) VALUES ('$user[uid]')");
mysql_query(" replace INTO  {$dz}.`{$dx_pre}common_member_count` (uid) VALUES ('$user[uid]')");
mysql_query(" replace INTO  {$dz}.`{$dx_pre}common_member_profile` (uid) VALUES ('$user[uid]')");
mysql_query(" replace INTO  {$dz}.`{$dx_pre}common_member_status` (uid) VALUES ('$user[uid]')");
}
echo "已从UC批量导入激活成功";