本帖最后由 韦奇科技 于 2012-4-1 14:47 编辑
先简单说一下吧,后台删除一个用户,勾选删除ucenter,结果不知道怎么回事把管理员都给删除了,丢失了很多数据。发现pre_common_member表和ucenter的数据根本不匹配。它和UC中的用户并不同步,我找了好多资料,没人能解决,求人不如求自己。终于测试成功,支持x2和dz7.2,自己可以根据代码衍生其他版本。
目前以知pre_ucenter_members数据表中的用户是完整的,问,如何把UC表中的用户完全同步到应用中的pre_common_member表中?代码x2的如下:
- <?php
- $dbserver ='localhost'; //此处改成数据库服务器地址
- $dbuser =''; //此处写数据库用户名
- $dbpwd =''; //数据库密码
- $dbname =''; //数据库名称
- global $connect;
- $connect=mysql_connect($dbserver,$dbuser,$dbpwd) or die("无法连接数据库");
- @mysql_select_db($dbname,$connect);
- mysql_query('set names gbk'); //此处依据自己站点的字符集设置
- //从此行向下,默认的表前缀是pre_,请根据自己的表前缀进行修改,我uc表前缀是uc。
- $query = mysql_query("SELECT * FROM uc_members WHERE uid not in(select uid from pre_common_member) ",$connect);
- while($user = mysql_fetch_array($query)) {
- //$password=$user[password];
- echo $password=$user['username']; //此处查看有多少用户得转
- echo "
- ";
- mysql_query(" replace INTO 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 pre_common_member_field_forum (uid) VALUES ('$user[uid]')");
- mysql_query(" replace INTO pre_common_member_field_home (uid) VALUES ('$user[uid]')");
- }
- echo "完成";
- ?>
复制代码
7.2的解决方法。
代码如下
- <?php
- /****************************************/
- /****************************************/
- $dbserver ='localhost'; //此处改成数据库服务器地址
- $dbuser ='admin';//此处写数据库用户名
- $dbpwd ='admin';//数据库密码
- $dbname ='db';//数据库名称
- global $connect;
- $connect=mysql_connect($dbserver,$dbuser,$dbpwd) or die("无法连接数据库");
- @mysql_select_db($dbname,$connect);
- mysql_query('set names gbk');//此处依据自己站点的字符集设置
- //从此行向下,我默认uc的表前缀是rr_。x1的表前缀是cdb_
- //实际使用的时候要自己修改
- $query = mysql_query("SELECT * FROM rr_members WHERE uid not in(select uid from cdb_members) ",$connect);
- while($user = mysql_fetch_array($query)) {
- echo $password=$user['username']; //此处查看有多少用户得转
- echo "
- ";
-
- mysql_query(" replace INTO cdb_members (uid,username,password,adminid,groupid,regdate,email) VALUES ('$user[uid]', '$user[username]', '$password','0','10','$user[regdate]','$user[email]') ");
-
- mysql_query(" replace INTO cdb_memberfields (uid,avatarwidth,avatarheight,buyercredit,sellercredit) VALUES ('$user[uid]','0','0','0','0')");
- }
- echo "finished";
- ?>
复制代码
但你看到 finished 就完成了
UC数据表里面的密码密值和DZ的不一样,但是依然能使用
|