[繁体中文]             |

赛壶网

头部广告

解决 discuz 19楼 门户 diy 无法保存的问题

[复制链接]
分享奖励排行榜
发表于 2016-3-19 19:16:42 | 显示全部楼层 |阅读模式
和许多论坛一样,我也遇到了门户页diy无法保存的问题。baidu了好久,试了网上说的各种方法,都没能解决。
最终还是自己测试发现了问题所在:

原因是我的论坛做过移行,移行时莫名其妙数据库表的某些字段属性有丢失,这里影响diy保存的就是这张表:pre_common_block_item
大家可以看到导出结构时是这样的:
CREATE TABLE `pre_common_block_item` (
  `itemid` int(10) UNSIGNED NOT NULL,
  `bid` mediumint(8) UNSIGNED NOT NULL DEFAULT '0',
  `id` int(10) UNSIGNED NOT NULL DEFAULT '0',
  `idtype` varchar(255) NOT NULL DEFAULT '',
  `itemtype` tinyint(1) NOT NULL DEFAULT '0',
  `title` varchar(255) NOT NULL DEFAULT '',
  `url` varchar(255) NOT NULL DEFAULT '',
  `pic` varchar(255) NOT NULL DEFAULT '',
  `picflag` tinyint(1) NOT NULL DEFAULT '0',
  `makethumb` tinyint(1) NOT NULL DEFAULT '0',
  `thumbpath` varchar(255) NOT NULL DEFAULT '',
  `summary` text NOT NULL,
  `showstyle` text NOT NULL,
  `related` text NOT NULL,
  `fields` text NOT NULL,
  `displayorder` smallint(6) NOT NULL DEFAULT '0',
  `startdate` int(10) UNSIGNED NOT NULL DEFAULT '0',
  `enddate` int(10) UNSIGNED NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

而这个结构是有问题的,关键问题在 itemid 字段属性不对,某些属性丢失了。
丢失的属性是 PRIMARY KEY AUTO_INCREMENT。没有了这个属性,导致在保存diy数据记录的时候,itemid无法自增,产生了许多itemid为0的记录,而这些记录在展现时只能展现出1条。


如果你的门户在diy保存后,无法展现内容,或者只能展现出1条记录,那么极有可能就是这个原因了。

找到了问题所在,解决问题也就变得很简单了:
首先导出数据,删除表,按下表的结构重建表,在导入导出的数据。完成!

附:正确完整的表结构(下划线是新增的内容):
CREATE TABLE `pre_common_block_item` (
  `itemid` int(10) UNSIGNED NOT NULL  PRIMARY KEY AUTO_INCREMENT,
  `bid` mediumint(8) UNSIGNED NOT NULL DEFAULT '0',
  `id` int(10) UNSIGNED NOT NULL DEFAULT '0',
  `idtype` varchar(255) NOT NULL DEFAULT '',
  `itemtype` tinyint(1) NOT NULL DEFAULT '0',
  `title` varchar(255) NOT NULL DEFAULT '',
  `url` varchar(255) NOT NULL DEFAULT '',
  `pic` varchar(255) NOT NULL DEFAULT '',
  `picflag` tinyint(1) NOT NULL DEFAULT '0',
  `makethumb` tinyint(1) NOT NULL DEFAULT '0',
  `thumbpath` varchar(255) NOT NULL DEFAULT '',
  `summary` text NOT NULL,
  `showstyle` text NOT NULL,
  `related` text NOT NULL,
  `fields` text NOT NULL,
  `displayorder` smallint(6) NOT NULL DEFAULT '0',
  `startdate` int(10) UNSIGNED NOT NULL DEFAULT '0',
  `enddate` int(10) UNSIGNED NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

如果解决的你的问题,帮忙点个赞哦!


有人访问你的分享时,你将获得奖励(每次1金钱,重复访问不计)

评论

使用道具 举报

使用高级回帖 (可批量传图、插入视频等)快速回复

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则   Ctrl + Enter 快速发布  

发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
快速回复 返回顶部 返回列表