插件作者的标准出来了!Manyou诚邀开发者加盟!
《站长》&《程序员》杂志火热征集开发者
立即免费下载 Discuz!6.1.0正式版
Discuz! 6.1.0 使用说明
Discuz!NT2.5正式版发布
开放源码下载
UCenter Home 1.2 正式版发布
官方站 | 帮助文档
基于ECShop的网店托管-卖否
PHP就业培训直通车 | LAMP培训大连
Discuz!收费服务内容及价格
论坛免费升级 手握手
Discuz!/ECShop 专用官方虚拟主机
【九城-奇迹世界】专题活动开始了!
Comsenz 招聘信息
网店系统ECShop v2.6.0正式版火热发布
基于Discuz!的免费论坛空间5D6D
参与有奖社区调查 赢取台湾5日游
发新话题
打印

[使用] 手工更改论坛会员的uid FOR 4.0

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

看到有人需要,我就写个文章吧,希望达到抛砖引玉的目的。

刚看到的时候就觉得不简单,做的过程中更是觉得不简单,牵涉的表太多了,真正修改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
那么后台升级数据库是这样升级
复制内容到剪贴板
代码:
UPDATE `cdb_access` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_adminsessions` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_banned` SET `id`=30 WHERE `id`=3;
UPDATE `cdb_blogcaches` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_buddys` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_creditslog` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_favorites` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_memberfields` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_members` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_moderators` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_modworks` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_onlinetime` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_orders` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_paymentlog` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_posts` SET `authorid`=30 WHERE `authorid`=3;
UPDATE `cdb_promotions` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_ratelog` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_threads` SET `authorid`=30 WHERE `authorid`=3;
UPDATE `cdb_threadsmod` SET `uid`=30 WHERE `uid`=3;
UPDATE `cdb_validating` SET `uid`=30 WHERE `uid`=3;
called off..
好啊!3Q
虚心努力学习DZ中... o(‧""‧)o 
www.sz880.com
改了一个UID,目前没发现问题,非常感谢!
辛苦@鑫~#了,没想到仅仅是一些语句就解决了大家期待的问题。

顺便想问问批量修改呢?又要麻烦了!
指定范围的UID(可能为不连续的)按顺序连续排在某UID后。
如UID为7、9、10重新排列在UID为2的后面为3、4、5。
虚心努力学习DZ中... o(‧""‧)o 
www.sz880.com
好像没什么用吧?可能我用不到
定制UCH插件可以PM我
http://www.daxuesheng.com 大学生网期待您的光临
网易奥运观方站所有新功能将全部打包送给站长。
引用:
原帖由 kongkang 于 2006-8-14 11:26 发表
好像没什么用吧?可能我用不到
看来你是个不管坛子的隐者,呵呵!
用处我就不多说了。
虚心努力学习DZ中... o(‧""‧)o 
www.sz880.com
这样做好麻烦呀,还会出错,希望有更好的方法,暴力营销作者出门被车撞死
刚刚找到这里,留个记号。
等着用呢。
期望中...
引用:
原帖由 寒星NO1 于 2006-8-14 16:35 发表
这样做好麻烦呀,还会出错,希望有更好的方法,暴力营销作者出门被车撞死
还会出错??我试过更改了几个都没出错的。

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

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

对于暴力××,折中的办法是,删除或合并,然后手动更改UID,可是又引起注册用户当前的UID空置。
虚心努力学习DZ中... o(‧""‧)o 
www.sz880.com
再观望一段时间,MS不改也没什么大事
MEYU银牌代理空间大优惠http://www.meyu.net/
发新话题
版块跳转