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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] DV8.3转DZX1.0第10步疑问

[复制链接]
mccad 发表于 2010-11-6 18:57:02 | 显示全部楼层 |阅读模式
本帖最后由 mccad 于 2010-11-6 19:05 编辑

由于DV数据库的好友数据表中,是通过用户名做关联的,而没有用到用户ID。
而DZ表中,使用了uid和fuid关联做唯一性索引。
这样,由于用户表中,有些用户会在使用过程被管理员删除掉,所以通过用户名无法取得用户ID,则可能会出现用户ID为0。
这样,在DZ中填充好友表时,就有可能因ID为0而出现记录索引重复的问题而出错。

我就出现这样的错误,所以,官方程序需要处理通过用户名取ID时,ID为0时,记录就不再转换到DZ表中。

补充,查DV数据表,用户ID和用户名均有,朋友则只有用户名。
而用户ID可能会是0。需要判断。

幸福在右 发表于 2010-11-6 18:58:38 | 显示全部楼层
具体是什么错误呢?
回复

使用道具 举报

 楼主| mccad 发表于 2010-11-6 19:06:08 | 显示全部楼层
当然出错的问题就是索引复制了:
XConvert info: MySQL Query Error

Time: 2010-11-6 10:48am
SQL: INSERT INTO discuz_temp.pre_home_friend (uid, fuid, fusername, gid, num, dateline) VALUES ( '0', '8', 'mccad', '1', '0', '0');
Error: Duplicate entry '0-8' for key 'PRIMARY'
Errormsg.: 字段值重复,入库失败
Errno.: 1062

回复

使用道具 举报

 楼主| mccad 发表于 2010-11-6 19:14:51 | 显示全部楼层
我做了如下更改,可以解决:
        $uid = $friend['f_userid'];
        if($friendid = getuid($friend['f_friend'])) {
改为:
        $uid = $friend['f_userid'];
        $friendid = getuid($friend['f_friend']);
        if($friendid !=0 && $uid != 0) {
回复

使用道具 举报

12153556 发表于 2010-11-6 19:33:36 | 显示全部楼层
mccad 发表于 2010-11-6 19:14
我做了如下更改,可以解决:
        $uid = $friend['f_userid'];
        if($friendid = getuid($friend['f_friend'] ...

支持一个..........
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-2 16:30 , Processed in 0.095875 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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