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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] 为什么dv83sql转X1.0程序的step6.php中有以下语句

[复制链接]
mccad 发表于 2010-11-6 18:30:11 | 显示全部楼层 |阅读模式

  1. $t_field2 = array('pid');
  2. $t_query2 = getinsertsql("{$discuz_tablepre}forum_post_tableid", $t_field2);
  3. if($t_v = $db['discuz']->query($t_query2)) {
  4.   //$pid = $t_v['pid'];
  5.   $pid = $db['discuz']->insert_id();
  6.   $t_field1 = array('fid', 'tid', 'first', 'author', 'authorid', 'subject', 'dateline', 'message', 'useip', 'attachment', 'usesig', 'bbcodeoff', 'smileyoff', 'parseurloff', 'htmlon', 'rate', 'ratetimes', 'status');
  7.   $t_query1 = getinsertsql("{$discuz_tablepre}forum_post", $t_field1);
  8.   $db['discuz']->query($sql);
  9. } else {
  10.   reportlog("转换商品交易出错 tid = $tid , pid = $pid");
  11. }
复制代码
我转换时在这段出现问题,查:forum_post_tableid本身在第5步转换帖子时就已经填充了数据,到了第6步,只是转换交易帖内容,所以转换到这里,pid由于取值是:$pid = $dvp['announceid'];
会与原来已经有的值重复,出现值重复错误。
而且本身在这里,取得了pid值,在后面的代码中并没有用到。
另外,这段代码中,$db['discuz']->query($sql);这句也是乱来的,$sql本来就没有值,怎么能执行呢。
按照此分析,如果用户数据库中本身带有商品,肯定会出错。

也就是说官方的转换程序有问题。


 楼主| mccad 发表于 2010-11-6 18:33:59 | 显示全部楼层
另外,DV帖子的$pid = $dvp['announceid'];值,并不能做为商品与DZ中与帖子相对应,因为本身在转换帖子时,并没有使用到'announceid'值,而是自己另外生成pid值。
也就是说,转换后的交易数据,并无法与原来的帖子对应到。
回复

使用道具 举报

 楼主| mccad 发表于 2010-11-6 18:36:42 | 显示全部楼层
故建议,交易转换直接与帖子转换放在一步完成,这样,就可以pid对应的问题
回复

使用道具 举报

jm611 发表于 2010-11-10 12:39:28 | 显示全部楼层
回复

使用道具 举报

12153556 发表于 2010-11-10 14:17:18 | 显示全部楼层
呵呵..........

楼主太强,所有的都是自问自答................
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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