Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

手工更改论坛会员的uid FOR 4.0

[复制链接]
郭鑫 发表于 2006-8-14 10:44:56 | 显示全部楼层 |阅读模式
看到有人需要,我就写个文章吧,希望达到抛砖引玉的目的。

刚看到的时候就觉得不简单,做的过程中更是觉得不简单,牵涉的表太多了,真正修改uid是个比较麻烦的活,不过也就更新几个表的uid就可以了。
我用Discuz! 4.1.0严格测试通过

我找了一下,几个常用的与会员uid有关系的表和字段如下




表名                                                字段名(没有写的就是uid)
cdb_access
cdb_adminsessions
cdb_banned                                                  id

cdb_blogcaches
cdb_buddys
cdb_creditslog
cdb_favorites
cdb_memberfields
cdb_members
cdb_moderators
cdb_modworks
cdb_onlinetime
cdb_orders
cdb_paymentlog
cdb_posts                                                   authorid
cdb_promotions
cdb_ratelog
cdb_threads                                                 authorid
cdb_threadsmod
cdb_validating




所以,如果要修改一个会员的uid,那么按照这样的操作后台修改数据库。
我这里假设以前的uid为3,要修改成30
那么后台升级数据库是这样升级
  1. UPDATE `cdb_access` SET `uid`=30 WHERE `uid`=3;
  2. UPDATE `cdb_adminsessions` SET `uid`=30 WHERE `uid`=3;
  3. UPDATE `cdb_banned` SET `id`=30 WHERE `id`=3;
  4. UPDATE `cdb_blogcaches` SET `uid`=30 WHERE `uid`=3;
  5. UPDATE `cdb_buddys` SET `uid`=30 WHERE `uid`=3;
  6. UPDATE `cdb_creditslog` SET `uid`=30 WHERE `uid`=3;
  7. UPDATE `cdb_favorites` SET `uid`=30 WHERE `uid`=3;
  8. UPDATE `cdb_memberfields` SET `uid`=30 WHERE `uid`=3;
  9. UPDATE `cdb_members` SET `uid`=30 WHERE `uid`=3;
  10. UPDATE `cdb_moderators` SET `uid`=30 WHERE `uid`=3;
  11. UPDATE `cdb_modworks` SET `uid`=30 WHERE `uid`=3;
  12. UPDATE `cdb_onlinetime` SET `uid`=30 WHERE `uid`=3;
  13. UPDATE `cdb_orders` SET `uid`=30 WHERE `uid`=3;
  14. UPDATE `cdb_paymentlog` SET `uid`=30 WHERE `uid`=3;
  15. UPDATE `cdb_posts` SET `authorid`=30 WHERE `authorid`=3;
  16. UPDATE `cdb_promotions` SET `uid`=30 WHERE `uid`=3;
  17. UPDATE `cdb_ratelog` SET `uid`=30 WHERE `uid`=3;
  18. UPDATE `cdb_threads` SET `authorid`=30 WHERE `authorid`=3;
  19. UPDATE `cdb_threadsmod` SET `uid`=30 WHERE `uid`=3;
  20. UPDATE `cdb_validating` SET `uid`=30 WHERE `uid`=3;
复制代码
yangtx 发表于 2006-8-14 10:58:07 | 显示全部楼层
好啊!3Q
回复

使用道具 举报

yangtx 发表于 2006-8-14 11:16:35 | 显示全部楼层
改了一个UID,目前没发现问题,非常感谢!
辛苦@鑫~#了,没想到仅仅是一些语句就解决了大家期待的问题。

顺便想问问批量修改呢?又要麻烦了!
指定范围的UID(可能为不连续的)按顺序连续排在某UID后。
如UID为7、9、10重新排列在UID为2的后面为3、4、5。
回复

使用道具 举报

kongkang 发表于 2006-8-14 11:26:35 | 显示全部楼层
好像没什么用吧?可能我用不到
回复

使用道具 举报

yangtx 发表于 2006-8-14 11:30:48 | 显示全部楼层
原帖由 kongkang 于 2006-8-14 11:26 发表
好像没什么用吧?可能我用不到

看来你是个不管坛子的隐者,呵呵!
用处我就不多说了。
回复

使用道具 举报

寒星NO1 发表于 2006-8-14 16:35:45 | 显示全部楼层
这样做好麻烦呀,还会出错,希望有更好的方法,暴力营销作者出门被车撞死
回复

使用道具 举报

H5N1 发表于 2006-8-14 16:40:33 | 显示全部楼层
刚刚找到这里,留个记号。
等着用呢。
回复

使用道具 举报

gggg_idtf 发表于 2006-8-15 08:21:29 | 显示全部楼层
期望中...
回复

使用道具 举报

yangtx 发表于 2006-8-15 09:16:32 | 显示全部楼层
原帖由 寒星NO1 于 2006-8-14 16:35 发表
这样做好麻烦呀,还会出错,希望有更好的方法,暴力营销作者出门被车撞死

还会出错??我试过更改了几个都没出错的。

不过发现些UID空缺引起的问题,那些空缺的UID个数是消除不了的,比如有8个(合并、删除用户),那么新用户的注册永远是+8的。

这个是我目前头疼的问题。

对于暴力××,折中的办法是,删除或合并,然后手动更改UID,可是又引起注册用户当前的UID空置。
回复

使用道具 举报

Dream☆Wing 发表于 2006-8-20 02:54:27 | 显示全部楼层
再观望一段时间,MS不改也没什么大事
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 23:45 , Processed in 0.034144 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表