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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

从x2 beta版升级到x2 RC版,帖子附件图片显示为 ?号

[复制链接]
evenzhou 发表于 2011-5-10 17:54:56 | 显示全部楼层 |阅读模式
本帖最后由 evenzhou 于 2011-5-19 13:04 编辑

出问题的用户:新安装的x2beta 版然后升级到x2RC
问题出在 x2RC版的升级程序中没有考虑 x2beta的中附件,所以用户在升级的时候应该跳过附件的升级,然后单独导入附件数据,x2 RC_ gbk升级版程序:
主要更改:去掉了附件的升级
  1. elseif($_GET['op'] == 'forumattach') {
  2. $nextop = 'moderate';
  3. $limit = 10000;
  4. $start = !empty($_GET['start']) ? $_GET['start'] : 0;
  5. $needupgrade = DB::query("SELECT COUNT(*) FROM ".DB::table('forum_attachmentfield'), 'SILENT');
  6. $count = DB::result_first("SELECT COUNT(*) FROM ".DB::table('forum_attachment'));
  7. if($needupgrade && $count) {
  8. if(!$start) {
  9. for($i = 0;$i < 10;$i++) {
  10. DB::query("TRUNCATE ".DB::table('forum_attachment_'.$i));
  11. }
  12. }
  13. $query = DB::query("SELECT a.*,af.description FROM ".DB::table('forum_attachment')." a
  14. LEFT JOIN ".DB::table('forum_attachmentfield')." af USING(aid)
  15. ORDER BY aid LIMIT $start, $limit");
  16. if(DB::num_rows($query)) {
  17. while($row = DB::fetch($query)) {
  18. $row = daddslashes($row);
  19. $tid = (string)$row['tid'];
  20. $tableid = $tid{strlen($tid)-1};
  21. DB::update('forum_attachment', array('tableid' => $tableid), array('aid' => $row['aid']));
  22. DB::insert('forum_attachment_'.$tableid, array(
  23. 'aid' => $row['aid'],
  24. 'tid' => $row['tid'],
  25. 'pid' => $row['pid'],
  26. 'uid' => $row['uid'],
  27. 'dateline' => $row['dateline'],
  28. 'filename' => $row['filename'],
  29. 'filesize' => $row['filesize'],
  30. 'attachment' => $row['attachment'],
  31. 'remote' => $row['remote'],
  32. 'description' => $row['description'],
  33. 'readperm' => $row['readperm'],
  34. 'price' => $row['price'],
  35. 'isimage' => $row['isimage'],
  36. 'width' => $row['width'],
  37. 'thumb' => $row['thumb'],
  38. 'picid' => $row['picid'],
  39. ));
  40. }
  41. $start += $limit;
  42. show_msg("论坛附件表升级中 ... $start/$count", "$theurl?step=data&op=forumattach&start=$start");
  43. }
  44. DB::query("DROP TABLE `".DB::table('forum_attachmentfield')."`");
  45. DB::query("ALTER TABLE ".DB::table('forum_attachment')."
  46. DROP `width`,
  47. DROP `dateline`,
  48. DROP `readperm`,
  49. DROP `price`,
  50. DROP `filename`,
  51. DROP `filetype`,
  52. DROP `filesize`,
  53. DROP `attachment`,
  54. DROP `isimage`,
  55. DROP `thumb`,
  56. DROP `remote`,
  57. DROP `picid`
  58. ");
  59. }
  60. show_msg("论坛附件表升级完毕", "$theurl?step=data&op=$nextop");
  61. }
复制代码


由于附件表中filename 字段值为空,导致程序没法识别出文件的扩展名,不能与程序定义的文件类型图标匹配 如果attachement为空,就不能下载文件,filesize存的是附件的大小

导入x2 beta附件的方法:
首先,确保以前有备份(x2 beta备份的完整数据)

然后 登录phpmyadmin( 数据库管理员软件),查看附件中filename 和 attachement 字段值是否为空,
如图:

如果为空
清空掉 附件表 pre_forum_attachment 至 pre_forum_attachment_unused 共 12个表 中的记录( 注意:自己确保已经备份好数据)


找到备份数据,从其中分离出 关于 附件表的insert into 语句 (有12个表的insert语句)
如这样的语句:


  1. INSERT INTO pre_forum_attachment VALUES ('1','3','3','1','3','0');
  2. INSERT INTO pre_forum_attachment VALUES ('2','3','3','1','3','0');
  3. INSERT INTO pre_forum_attachment VALUES ('3','3','4','1','3','0');




  4. INSERT INTO pre_forum_attachment_3 VALUES ('2','3','3','1','1305076324',0x3030312e6a7067,'584614',0x3230313130352f31312f3039313230357a6b76716e3773786e6a6a386b3734372e6a7067,'0','','0','0','-1','1680','0','0');
  5. INSERT INTO pre_forum_attachment_3 VALUES ('1','3','3','1','1305076297',0x323031312d352d31302e646f6378,'14265',0x3230313130352f31312f3039313133373137317866747766327077366c3278372e617474616368,'0','','0','0','0','0','0','0');
  6. INSERT INTO pre_forum_attachment_3 VALUES ('3','3','4','1','1305076442',0x617069b5c4baacd2e52e747874,'10922',0x3230313130352f31312f3039313430336a613665346a367365383738347232362e747874,'0','','0','0','0','0','0','0');
复制代码

将语句保存sql文件
接着用phpmyadmin 插入 数据库 或  将文件保存为sql文件 直接 import (注意:编码要统一
如图:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
wq66696662 发表于 2011-5-10 18:34:49 | 显示全部楼层
这。。太高级了。。难懂~
回复

使用道具 举报

qi99 发表于 2011-5-10 18:50:59 | 显示全部楼层
这个懂不到呀
回复

使用道具 举报

64243354 发表于 2011-5-10 19:22:50 | 显示全部楼层
老大简单点 他们会不懂
回复

使用道具 举报

0593zx 发表于 2011-5-11 05:49:51 | 显示全部楼层
  对数据库不是很熟悉  我的站也是出现同样的问题       但是不敢贸然操作  
回复

使用道具 举报

plotworld.cn 发表于 2011-5-11 11:43:50 | 显示全部楼层
sql数据库嘛,太简单了。

大家改加强学习了
回复

使用道具 举报

boxue168 发表于 2011-5-11 22:43:01 | 显示全部楼层
能直接出个BUG程序吗?这么复杂的操作程序,有几个初级站长懂。{:soso_e134:}
回复

使用道具 举报

ybs885 发表于 2011-5-13 19:43:49 | 显示全部楼层
好在有这个补丁,。。谢谢了
回复

使用道具 举报

囧死你 发表于 2011-5-14 09:45:34 | 显示全部楼层
请问我这个问题是不是就是你说的这个问题呢?
https://discuz.dismall.com/thread-2155992-1-1.html
回复

使用道具 举报

q8947431 发表于 2011-5-15 20:15:03 | 显示全部楼层
这。。太高级了。。难懂~{:soso__16850654986616527109_3:}
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 18:50 , Processed in 0.027405 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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