部分用户在更新PbootCMS后,访问前台页面显示执行SQL发生错误!错误: Key 'ay_content_ext_contentid' doesn't exist in table 'e'  的问题,如下图所示,经HTMLBK博主排查后,发现是 ay_content_ext 表缺少 ay_content_ext_contentid 索引导致,于是得出以下解决方案

QQ浏览器截图20250517161545.jpg

方案一:到数据库中手动添加索引

如果使用MySQL,则用:

ALTER TABLE `ay_content_ext` ADD INDEX `ay_content_ext_contentid` (`contentid`);

如果使用SQLite,则用:

CREATE INDEX `ay_content_ext_contentid` ON `ay_content_ext` (`contentid`);


方案二:傻瓜式直接修改文件

找到文件 /apps/home/model/ParserModel.php ,搜索 if (get_db_type() == 'mysql') { ,大概365行~373行,即注释或删除以下代码块,即可用最简单粗暴又无脑的方法解决~

if (get_db_type() == 'mysql') {
    $contentSortIndex = 'FORCE INDEX ( `ay_content_sort_scode` ) ';
    $modelIndex = 'FORCE INDEX ( `ay_model_mcode` )';
    $contentExtIndex = 'FORCE INDEX ( `ay_content_ext_contentid` )';
}else if(get_db_type() == 'sqlite') {
    $contentSortIndex = 'INDEXED BY `ay_content_sort_scode` ';
    $modelIndex = 'INDEXED BY  `ay_model_mcode` ';
    $contentExtIndex = 'INDEXED BY  `ay_content_ext_contentid` ';
}


但凡有丁点基础的,HTMLBK博主都建议选择方案一,纯小白就直接方案二吧!

至此,不出意外的话问题解决~

THE END

本站部分文章搜集整理于互联网或者网友提供,如有侵权请联系站长

如若转载,请注明出处:https://www.htmlbk.com/pbootcms/2539.html

温馨提示:该文档最后一次修改时间为2025-06-03 11:34:54,请注意相关的内容是否还可用!

TAG标签:pbootcms