今天一个朋友找到我,说他用织梦CMS做的网站遇到了大错误,数dede网站模板据出错了,求我帮他急救。我问下了,情况是这样的:
他在操作时发现这个数据库表dede_archives出错,出错提示:
Can’t open file: ‘dede_archives.MYI’. (errno: 145) – Execute Query False! Select count(*) as dd From dede_archives limit 0,1;
看到提示后,单击修复也没用。
我也不是什么高手,也能从网上搜索答案,加之实践操作,终于搞定,下面我的操作流程,提供给大家学习参考。
仔细分析后,发现是dede自动截取文章简介产生乱码引起保存到数据库出错。
解决方法是替换掉dede的一个函数(SpHtml2Text):
此函数在下面文件 第四行:
include\inc\inc_fun_funString.php dede后台模板
原型是:
function SpHtml2Text($str){
$str = preg_replace(”/||/isU”,”",$str);
$alltext = “”;
$start = 1;
for($i=0;$i if($start==0 && $str[$i]dede手机模板==">“) $start = 1;
else if($start==1){
if($str[$i]==”< "){ $start = 0; $alltext .= " "; }
else if(ord($str[$i])>31) $alltext .= $str[$i];
}
}
$alltext = str_replace(” ”,” “,$alltext);
$alltext = preg_replace(”/&([^;&]*)(;|&)/”,”",$alltext);
$alltext = preg_replace(”/[ ]+/s”,” “,$alltext);
return $alltext;
}
其作用是去掉所有htm标记。
俺替换成下面的函数:
function SpHtml2Text($str){
$alltext = str_replace(” ”,”",$str);
$alltext=strip_tags(trim($alltext));//haha123_0 去掉所有htm标记
return $alltext;
}
问题不再出现:》
欢迎批评指正。
方法三(无法显示): http://bbs.织梦模板.com/read.php?tid=35453&keyword=dede%5C_archives
我抄出来一下吧:
用mysql的用户,经?;嵊龅秸庋奈侍猓觳閙ysql日志,错误信息为:
Table ‘.\织梦模板v4\dede_archives’ is marked as crashed and should be repaired
提示说cms的文章表dede_archives被标记有问题,需要修复。于是赶快恢复历史数据,上网查找原因。最终将问题解决。解决方法如下:
找到mysql的安装目录的bin/myisamchk工具,在命令行中输入:
myisamchk -c -r ../data/织梦模板v4/dede_archives.MYI
然后myisamchk 工具会帮助你恢复数据表的索引。重新启动mysql,问题解决。
问题分析:
1、错误产生原因,有网友说是频繁查询和更新dede_archives表造成的索引错误,因为我的页面没有静态生成,而是动态页面,因此比较同意这种说法?;褂兴捣ㄎ荕YSQL数据库因为某种原因而受到了损坏,如:数据库服务器突发性的断电、在提在数据库表提供服务时对表的原文件进行某种操作都有可能导致MYSQL数据库表被损坏而无法读取数据。总之就是因为某些不可测的问题造成表的损坏。
关键词标签: 标签 数据库 织梦
声明: 本文由我的SEOUC技术文章主页发布于:2023-07-21 ,文章网站数据库出错如何修复,织梦教程主要讲述标签,数据库,织梦网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: http://www.tngdez.cn/article/web_33267.html
为你推荐与网站数据库出错如何修复,织梦教程相关的文章
网站建设技术SEOUC.COM
专注网站建设,SEO优化,小程序设计制作搭建开发定制网站等,数千家网站定制开发案例,网站推广技术服务。
5000+合作客服
8年从业经验
150+覆盖行业
|